怎样用python爬取疫情数据

Python020

怎样用python爬取疫情数据,第1张

import requests

from bs4 import BeautifulSoup

import re

import json

# 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='getAreaStat')

text = script.string

# 3.提取数据获取json格式数据

json_str = re.findall(r'\[.+\]', text)[0]

# 4.把json格式转换为python类型

last_day_corona_virus = json.loads(json_str)

# 5.以json格式保存最近一日数据

with open('data/last_day_coronavirus.json', 'w') as fp:

json.dump(last_day_corona_virus, fp, ensure_ascii=False)

爬取国内疫情数据。data_download(),引用包requests、json。1)访问网站获取数据;2)保存数据成json文件

将数据转存到excel。cpdata_toexcel(),引用包openpyxl、json。

1)从json文件中抽取所需数据,字段需求:省份、地市、总确诊人数、总疑似病例、总死亡人数。

2)创建Excel表,数据保存。

读取文件数据画疫情地图。show_data(),引用包pandas、pyecharts。

如今各大网站的反爬机制已经可以说是到了丧心病狂的程度,比如大众点评的字符加密、微博的登录验证等。相比较而言,新闻网站的反爬机制就要稍微弱一点。因此今天以新浪新闻为例,分析如何通过Python爬虫按关键词抓取相关的新闻。

首先,如果从新闻直接进行搜索,你会发现其内容最多显示20页,因此我们要从新浪的首页进行搜索,这样才没有页数的限制。