一、工具:
requests
Beautifulsoup
url: https://ncov.dxy.cn/ncovh5/view/pneumonia
二、网页分析:
打开网页,按F12分析数据结构:
三、数据爬取
整体思路:
1、爬取最近一天全球各国疫情数据
2、爬取1月23号以来各国疫情数据
3、爬取最近一天国内疫情数据
4、爬取1月22号以来国内各省、市疫情数据
爬取方法:
爬取数据—解析数据—保存数据
爬取最近一天全球各国疫情数据:
import requests
from bs4 import BeautifulSoup
import json
import re
# 1.发送请求,获取疫情首页
response = requests.get('https://ncov.dxy.cn/ncovh5/view/pneumonia') # <Response [200]>
home_page = response.content.decode()
# print(home_page)
# 2.从疫情首页,提取最近一日各国疫情数据
soup = BeautifulSoup(home_page, 'lxml') # soup和home_page区别不大
script = soup.find(id="getListByCountryTypeService2true")
text = script.contents # 以列表形式返回内容
# 3.从疫情数据中,获取json格式的字符串
json_str = re.findall(r'\[.+\]', text[0])[0]
# 4.把json格式的字符串转换为Python类型
last_day_corona_virus = json.loads(json_str)
# 5.以json格式保存最近一日各国疫情数据
with open('data/last_day_corona_virus.json', 'w') as fp:
json.dump(last_day_corona_virus, fp, ensure_ascii=False)
数据格式如下:
我的博客:
http://www.chencdd.com/article/2020/10/25/7.html