Python 爬虫实战:使用 BeautifulSoup 和 SQLite 抓取网页数据并存储
import requests
from bs4 import BeautifulSoup
import sqlite3
# 爬取网页
url = 'http://49.235.120.214/sunzhiwei/index.html'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/18.17763'
}
codes = requests.get(url, headers=headers).text
# 用BeautifulSoup解析网页并获取所有p标签的内容
soup = BeautifulSoup(codes, 'html.parser')
# 获取每个p标签中的自我介绍内容
p_tags_content = [tag.text for tag in soup.find_all('p', class_='introduction')]
print(p_tags_content)
# 创建一个自我介绍表
conn = sqlite3.connect('my_database.db')
cursor = conn.cursor()
sql = 'CREATE TABLE introduction(id INTEGER PRIMARY KEY, name TEXT, hometown TEXT, course_recommendation TEXT)'
cursor.execute(sql)
# 将爬取到的自我介绍数据插入到表中
for index, content in enumerate(p_tags_content, start=1):
name = content[0].strip() # 假设自我介绍的第一行是姓名
hometown = content[1].strip() # 假设自我介绍的第二行是家乡介绍
course_recommendation = content[2].strip() # 假设自我介绍的第三行是课程建议
sql = f'INSERT INTO introduction VALUES ({index}, '{name}', '{hometown}', '{course_recommendation}')'
cursor.execute(sql)
conn.commit()
print(f'插入了{len(p_tags_content)}条记录')
# 重新连接到数据库
conn = sqlite3.connect('my_database.db')
cursor = conn.cursor()
# 查询introduction表中的所有数据
cursor.execute('SELECT * FROM introduction')
rows = cursor.fetchall()
# 打印所有行
for row in rows:
print(row)
运行结果将取决于网页中的自我介绍内容和数据库中已有的数据。根据代码逻辑,运行结果应该包括以下内容:
- 爬取到的自我介绍内容:
['姓名:张三
家乡:北京
课程建议:推荐学习Python编程。', '姓名:李四
家乡:上海
课程建议:推荐学习数据分析。']
- 插入的记录数量:
插入了2条记录
- 查询到的introduction表中的所有数据:
(1, '张三', '北京', '推荐学习Python编程。')
(2, '李四', '上海', '推荐学习数据分析。')
代码功能说明:
- 网页抓取: 使用
requests库获取网页内容,并使用BeautifulSoup库解析 HTML 结构。 - 数据解析: 从解析后的 HTML 结构中提取
p标签,并获取每个p标签中的自我介绍内容。 - 数据存储: 使用
sqlite3库创建数据库和表格,并将解析后的自我介绍数据插入到表格中。 - 数据查询: 从数据库中查询所有自我介绍数据并打印结果。
注意:
- 代码中的
url变量需要替换为目标网页的实际地址。 - 代码假设自我介绍信息以三行文本形式呈现,分别是姓名、家乡介绍和课程建议。如果网页结构不同,需要修改代码以匹配实际情况。
- 运行代码前需要确保
my_database.db文件不存在,否则会覆盖现有数据库。
更多信息:
原文地址: https://www.cveoy.top/t/topic/pdf9 著作权归作者所有。请勿转载和采集!