python - 使用python用beautifulsoup抓取网页,保存到MySQL
问题描述
我是编程新手,目前我正在学习使用 python 进行网络抓取。您的回答或建议将有助于我的学习过程。
这是HTML的一部分。我想提取包括数据、名称及其用途在内的信息。
<h2>Jan. 2020</h2>
<p><strong>nameA:</strong> usage for somethingA</p>
<p><strong>nameB:</strong> usage for somethingB</p>
<h2>Dec. 2019</h2>
<p><strong>nameC:</strong> usage for somethingC</p>
<p><strong>nameD:</strong> usage for somethingD</p>
<p><strong>nameE:</strong> usage for somethingE</p>
这是我的抓取代码。
from bs4 import BeautifulSoup
import requests
res=requests.get("https://website for my web scraping")
soup=BeautifulSoup(res.text,"html.parser")
start = soup.find('h2', string = "Jan. 2020")
print (start.text)
for elem in start.next_siblings:
if elem.name == 'h2':
break
if elem.name != 'p':
continue
print(elem.text)
start = soup.find('h2', string = "Dec. 2019")
print (start.text)
for elem in start.next_siblings:
if elem.name == 'h2':
break
if elem.name != 'p':
continue
print(elem.text)
代码有效,这是输出。
Jan. 2020
nameA: usage for somethingA
nameB: usage for somethingB
Dec. 2019
nameC: usage for somethingC
nameD: usage for somethingD
nameE: usage for somethingE
但我的主要目标是在下面生成一个包含日期、名称和使用情况的表格,并将数据保存到 MySQL。我该如何做到这一点?
Date Name Usage
Jan. 2020 nameA somethingA
Jan. 2020 nameB somethingB
Dec. 2019 nameC somethingC
Dec. 2019 nameD somethingD
Dec. 2019 nameE somethingE
该网站会定期更新一次,并将添加一组新数据(例如 2020 年 3 月)并取出一组旧数据(例如 2019 年 11 月)。如何调整 python 代码以反映网站变化?
解决方案
推荐阅读
- sql-server - 在规范化数据时获取 DISTINCT 公司信息
- javascript - 单击事件侦听器发生在加载而不是单击时
- php - 如何使用 php 和 volley android 进行间接文件下载
- apache - 如何在 WOFF2 的 HTTP 标头中指定页面使用的字符集?
- python - ImportError:无法从“__main__”导入名称“设置”
- c - Visual Studio LNK1107:无效或损坏的文件 - 来自 Flat Assembler 的 .obj (COFF)
- php - GROUP BY MYSQLi 中的条件
- javascript - Clients.openWindow() 等效于同一选项卡
- python - 使用 python 在 Post 请求中发送令牌
- python - ImportError:无法导入名称“keras”