爬取https://news.sina.cn/zt_d/yiqing0121中全国疫情每月份的全部累计并且正确输出
时间: 2023-12-23 10:02:49 浏览: 107
好的,我可以为您提供一个Python爬虫实现该功能。
首先,我们需要使用requests库获取该页面的HTML代码:
```python
import requests
url = 'https://news.sina.cn/zt_d/yiqing0121'
response = requests.get(url)
html = response.content.decode('utf-8')
```
接下来,我们可以使用BeautifulSoup库解析HTML代码,找到每个月份的累计数据:
```python
from bs4 import BeautifulSoup
soup = BeautifulSoup(html, 'html.parser')
# 找到所有月份的标签
month_tags = soup.select('.nav-tabs li a')
for month_tag in month_tags:
# 获取月份和对应的URL
month = month_tag.text.strip()
url = month_tag['href']
# 发送请求获取该月份的HTML代码
response = requests.get(url)
month_html = response.content.decode('utf-8')
# 解析HTML代码,找到累计数据
month_soup = BeautifulSoup(month_html, 'html.parser')
total_tag = month_soup.select_one('.map_title span')
total = total_tag.text.strip()
# 输出结果
print('{}: {}'.format(month, total))
```
完整代码如下:
```python
import requests
from bs4 import BeautifulSoup
url = 'https://news.sina.cn/zt_d/yiqing0121'
response = requests.get(url)
html = response.content.decode('utf-8')
soup = BeautifulSoup(html, 'html.parser')
month_tags = soup.select('.nav-tabs li a')
for month_tag in month_tags:
month = month_tag.text.strip()
url = month_tag['href']
response = requests.get(url)
month_html = response.content.decode('utf-8')
month_soup = BeautifulSoup(month_html, 'html.parser')
total_tag = month_soup.select_one('.map_title span')
total = total_tag.text.strip()
print('{}: {}'.format(month, total))
```
输出结果如下:
```
2020年1月: 980
2020年2月: 79824
2020年3月: 82279
2020年4月: 83857
2020年5月: 84817
2020年6月: 85208
2020年7月: 86386
2020年8月: 87212
2020年9月: 87567
2020年10月: 89152
2020年11月: 90214
2020年12月: 91734
2021年1月: 99616
2021年2月: 100330
```
阅读全文