如何爬古诗句并存到mysql
时间: 2025-01-05 09:47:06 浏览: 3
要爬取古诗句并将它们存储到MySQL数据库中,你需要经历几个步骤:网络抓取(使用Python库如`requests`)、数据解析(使用`BeautifulSoup`或`lxml`等)、建立连接(使用`mysql-connector-python`),然后执行SQL语句。以下是一个简单的示例:
**步骤1:安装必要的库**
首先确保已安装 `requests`, `beautifulsoup4`, `lxml`, 和 `mysql-connector-python`。你可以使用 pip 安装:
```bash
pip install requests beautifulsoup4 lxml mysql-connector-python
```
**步骤2:爬取古诗句**
这里以爬取《唐诗三百首》为例,你可以从网上找到一个提供古诗词的网站(请注意遵守版权法规)。假设URL为`http://example.com/tangpo/`,使用`requests`获取HTML内容:
```python
import requests
url = 'http://example.com/tangpo/'
response = requests.get(url)
html_content = response.text
```
**步骤3:解析HTML内容**
使用`BeautifulSoup`解析HTML,提取诗句和相关信息:
```python
from bs4 import BeautifulSoup
soup = BeautifulSoup(html_content, 'lxml')
poems = soup.find_all('div', class_='poem') # 假设诗句在一个名为'poem'的class里
```
**步骤4:处理和清洗数据**
遍历每个诗句,将文本拆分、清洗,可能还需要去除HTML标签:
```python
def clean_poem(poem):
text = poem.text.strip()
return text
诗句列表 = [clean_poem(p) for p in poems]
```
**步骤5:连接MySQL数据库**
创建一个到MySQL服务器的连接:
```python
import mysql.connector
# 填写数据库连接信息
cnx = mysql.connector.connect(user='your_username', password='your_password',
host='your_host', database='your_database')
cursor = cnx.cursor()
```
**步骤6:插入诗句到数据库**
定义一个插入诗句的SQL查询,并执行:
```python
sql = "INSERT INTO poems (title, content) VALUES (%s, %s)"
for i, poem in enumerate(诗句列表, start=1):
title = f"第{i}首"
values = (title, poem)
cursor.execute(sql, values)
# 提交事务,保存更改
cnx.commit()
# 关闭游标和连接
cursor.close()
cnx.close()
```
**注意事项:**
1. 请替换上述代码中的URL、数据库连接信息、表名和字段名。
2. 验证数据结构是否适合数据库,例如标题可能是字符串,而诗句可能是长文本。
3. 如果网站有反爬虫策略,可能需要添加代理、设置User-Agent或使用更复杂的请求头。
4. 使用try-except处理可能出现的异常,比如网络问题、数据库连接错误。
阅读全文