該內容出自黑馬程序員教程
采集最近一日世界各國疫情數據
步驟:
- 發送請求,獲取疫情首頁
- 從疫情首頁中提取最近一日各國疫情字符串
- 從最近一日各國疫情字符串中提取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)