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, '李四', '上海', '推荐学习数据分析。')

代码功能说明:

  1. 网页抓取: 使用 requests 库获取网页内容,并使用 BeautifulSoup 库解析 HTML 结构。
  2. 数据解析: 从解析后的 HTML 结构中提取 p 标签,并获取每个 p 标签中的自我介绍内容。
  3. 数据存储: 使用 sqlite3 库创建数据库和表格,并将解析后的自我介绍数据插入到表格中。
  4. 数据查询: 从数据库中查询所有自我介绍数据并打印结果。

注意:

  • 代码中的 url 变量需要替换为目标网页的实际地址。
  • 代码假设自我介绍信息以三行文本形式呈现,分别是姓名、家乡介绍和课程建议。如果网页结构不同,需要修改代码以匹配实际情况。
  • 运行代码前需要确保 my_database.db 文件不存在,否则会覆盖现有数据库。

更多信息:

Python 爬虫实战:使用 BeautifulSoup 和 SQLite 抓取网页数据并存储

原文地址: https://www.cveoy.top/t/topic/pdf9 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录