python 爬虫爬取疫情数据,爬虫思路和技术你全都有哈(二、数据清洗及存储)
爬起疫情数据,有两个网址:
1、百度:链接
2、丁香园疫情:链接
在这两个中,丁香园的爬虫相对简单一点,所以今天就展示一哈,百度的,哈哈哈。毕竟挑战一哈自己,看看有啥缺陷。不过确实在找数据方面,存在很多的问题,有很多地方需要学习哈。
但是看完这篇后,你再写丁香园的爬虫代码的时候,就很简单了。
可以自己尝试一下,给自己定个小目标,先来学习百度爬虫代码,课后作业,丁香爬虫代码
今日任务爬虫爬取疫情数据,我们向着百度疫情API伸出了万恶的魔爪哈!!!
目录
本次所用到的库:
爬虫思路
第一步: 确定爬取的网站连接
第二步:确定静态数据或动态数据,确定数据的位置
第三步:怎样解析数据
代码部分
第一步:请求网站(记得导入包哈)
第二步:解析所得到的网页源码
第三步:数据清洗
中国疫情地图制作
本次所用到的库:
import requests HTTP请求库 from lxml import etree xpath解析库 import json json数据格式包 from pyecharts.charts import Map 绘制中国疫情地图的包 from pyecharts import options as opts 绘制条形图的库 import pymysql mysql数据库调用接口就不仔细讲这些库的作用了,后面代码部分在一起讲给大家听哈。
首先,先说思路哈
爬虫思路
第一步: 确定爬取的网站连接
百度:爬取疫情数据链接
第二步:确定静态数据或动态数据,确定数据的位置
进入一个陌生的网站,首先确定是静态数据还是动态数据(又称前后端分离页面),先查看是否未静态页面(进入源码页),然后再查看是否未动态数据(进入开发者模式),进入源码页。你就会看到这样一幕(我偷偷找了好久,最好在script标签里面看到了,属实是第一次遇到这种情况),当下滑动条往右边拉的时候 ,你就会绝望了哈。
第三步:怎样解析数据
确定是静态数据之后,可以选择用re(正则)、xpath等,进行解析页面数据哈。
本文用的是xpath哈,前面已经说过了。而且这样的数据,必然是一个json数据,所以需要进行转换哈。str 转 json数据格式,就必须用到,json包中的json.loads()函数哈。但是在转换之前也能看到这些字符是有点不对劲的,所以还需要再 str 数据格式中进行转换utf-8字符集。
思路差不多就是这些了哈,在没有做反爬的基础上,大部分爬虫都是这三步
然后就是代码部分了哈
代码部分
一步一步来,慢慢给你们讲清楚哈
第一步:请求网站(记得导入包哈)
def HTTP_get(url):
resp = requests.get(url)
resp.encoding = 'utf-8'
return resp.text
if __name__ == '__main__':
url = 'https://voice.baidu.com/act/newpneumonia/newpneumonia/?from=osari_aladin_banner&city='
resp = HTTP_get(url)
print(resp)
请求成功后返回的是网页源码,此时数据格式是str格式,而我们需要的数据也在其中
第二步:解析所得到的网页源码
def xpath_json(resp):
print('xpath_json ------ 2')
html = etree.HTML(resp)
str_list = html.xpath("//script[@id='captain-config']/text()")
str_list = str_list[0].replace('\'', '') # 去掉 '' 单引发
str_list = str_list.encode('utf-8') # 转码字符集,转码中文
# str_list = str_list.encode('utf-8').decode('unicode_escape') # 转码字符集,转码中文
json_list = json.loads(str_list)
return json_list
if __name__ == '__main__':
url = 'https://voice.baidu.com/act/newpneumonia/newpneumonia/?from=osari_aladin_banner&city='
# 请求HTTP
resp = HTTP_get(url)
print(resp)
# 解析数据
json_list = xpath_json(resp)
此时输出的数据是json格式的数据,并且是我们需要的数据,但是因为数据太繁杂,太乱,所以我们还需要清洗数据
下面将是清洗数据
python 爬虫爬取疫情数据,爬虫思路和技术你全都有哈(二、数据清洗及存储)