该内容出自黑马程序员教程
采集最近一日世界各国疫情数据
步骤:
- 发送请求,获取疫情首页
- 从疫情首页中提取最近一日各国疫情字符串
- 从最近一日各国疫情字符串中提取json格式字符串
- 把json格式字符串转换为Python类型
- 把Python类型的数据,以json格式存入文件中
当然,数据来源仍然是丁香园新型冠状病毒肺炎疫情实时动态首页
url:https://ncov.dxy.cn/ncovh5/view/pneumonia
很显然,id='getListByCountryTypeService2true'
这里面存有世界各国疫情数据
import requests
import re
import json
from bs4 import BeautifulSoup#1,发送请求,获取疫情首页
response = requests.get("https://ncov.dxy.cn/ncovh5/view/pneumonia")
home_page = response.content.decode()#2,从疫情首页提取最近一日各国疫情数据
soup = BeautifulSoup(home_page,'lxml')
script = soup.find(id='getListByCountryTypeService2true')
text = script.text
#print(text)#3,从疫情数据中获取json格式的字符串
json_str = re.findall(r'\[.+\]',text)[0]#由于中括号是个特殊的字符,需要在前面加个转义符;最后的结果会存在列表中,故使用[0]来获取完整json格式
#print(json_str)#4,把json格式的字符串转换为Python类型
last_day_nature_num = json.loads(json_str)
#print(last_day_nature_num)#5,以json格式保存最近一日各国疫情数据
with open('E:\Jupyter_workspace\study\python\爬虫\last_day_nature_num.json','w') as fp:json.dump(last_day_nature_num,fp,ensure_ascii=False)