访问古诗文网(https://so.gushiwen.cn/mingjus/),使用BeautifulSoup采集所有名句页数据,爬取每个名句及其出处,并把爬取到的数据保存到MySQL数据库中。
时间: 2024-10-15 09:29:45 浏览: 100
访问古诗文网(https://so.gushiwen.cn/mingjus/)并使用Python的BeautifulSoup库来爬取数据是一个常见的网络抓取任务。以下是大概步骤:
1. **安装必要的库**:
首先需要安装`requests`用于发送HTTP请求获取网页内容,`beautifulsoup4`处理HTML解析,以及`mysql-connector-python`连接MySQL数据库。
```bash
pip install requests beautifulsoup4 mysql-connector-python
```
2. **获取网页内容**:
使用`requests.get()`获取名句页面的HTML内容,然后通过`.text`属性得到文本。
```python
import requests
url = "https://so.gushiwen.cn/mingjus/"
response = requests.get(url)
html_content = response.text
```
3. **解析HTML**:
使用BeautifulSoup解析HTML,找到包含名句和出处信息的部分。这通常涉及到选择特定的CSS或XPath表达式。
```python
from bs4 import BeautifulSoup
soup = BeautifulSoup(html_content, 'lxml')
quotes = soup.find_all('div', class_='quote') # 假设名句信息在class为'quote'的div标签内
```
4. **提取数据**:
循环遍历`quotes`列表,从每个元素中提取出名句和出处。可能需要根据实际的HTML结构调整这个过程。
```python
data = []
for quote in quotes:
title = quote.find('h4').text.strip() # 名句
author = quote.find('span', class_='author').text.strip() # 出处
data.append((title, author))
```
5. **连接MySQL数据库**:
创建一个到MySQL的连接,并使用`cursor.execute()`将数据插入表中。
```python
import mysql.connector
db_config = {
'host': 'your_host',
'user': 'your_user',
'password': 'your_password',
'database': 'your_database'
}
cnx = mysql.connector.connect(**db_config)
cursor = cnx.cursor()
create_table_query = """
CREATE TABLE IF NOT EXISTS gushiwen_quotes (
id INT AUTO_INCREMENT PRIMARY KEY,
title TEXT,
author TEXT
);
"""
cursor.execute(create_table_query)
# 插入数据
insert_data_query = "INSERT INTO gushiwen_quotes (title, author) VALUES (%s, %s)"
cursor.executemany(insert_data_query, data)
cnx.commit()
cursor.close()
cnx.close()
```
6. **运行脚本**:
将上述代码组合成一个完整的Python脚本,确保每次运行前检查数据库是否已存在所需表,如果没有则创建。
注意:在实际操作中,务必遵守网站的robots.txt协议,尊重版权,并确保您的活动符合法律要求。
阅读全文