时间:2021-05-22
最近肺炎的发展速度属实有点恐怖。刚知道python的pyecharts这个库,想到pyecharts可视化的特点,正好可以扒一下肺炎实时播报的官网也做个地图。
第一步扒取数据:发现一个大问题,各省的确诊人数网页源代码里竟然没有。百度才知道这是js渲染生产的,又是一顿查。找到一种方法。用selenium执行一遍网页渲染的过程就可以了,首先安装selenium。
在引用库的时候还需要webdriver这个启动浏览器的东西,我用的是google,所以要下载chromedriver。先查找自己chrome的版本
然后找到chromedriver的对应版本,下载
下载之后把exe文件解压到编代码的文件夹里就可以使用了。现在可以爬数据了,导入库
from selenium import webdriver然后驱动浏览器,并访问网址
driver = webdriver.Chrome()driver.get('https://news.163.com/special/epidemic/#map_block')这里记住得设置一个等待,要不然爬取数据的时候可能程序运行完了网页还没打开
driver.implicitly_wait(5)这时就可以获取数据了
data = driver.page_source还是得用正则表达式筛选一下想要的数据,别忘了在前面导入import re
name = re.findall(r'<span class="item_name">(.*?)</span>',data,re.S)[1:32]value = re.findall(r'span class="item_confirm">(.*?)</span>',data,re.S)[1:32]爬取成功
已经爬取到数据了,接下来就是可视化的部分了,用到pyecharts的Map块。
pyecharts文档链接在这里——按照文档里把库导入
地图的代码如下
但是我Faker这个下不下来,后来查了一下用了这个大佬的方法:地址
整体代码如下:
from pyecharts.charts import Mapfrom pyecharts import options as optsimport refrom selenium import webdriverdriver = webdriver.Chrome()driver.get('https://news.163.com/special/epidemic/#map_block')driver.implicitly_wait(5)#data = driver.find_element_by_xpath('/html/body/div[3]/div[2]/div[2]/ul[1]/li[1]/div/span[1]').text#.get_attribute('href')data = driver.page_sourceattr = re.findall(r'<span class="item_name">(.*?)</span>',data,re.S)[1:32]value = re.findall(r'span class="item_confirm">(.*?)</span>',data,re.S)[1:32]sequence = list(zip(attr, value))def map_visualmap(sequence, year) -> Map: c = ( Map() .add(year, sequence, "china", ) .set_global_opts( title_opts=opts.TitleOpts(title="新冠装状病毒各省确诊人数"), visualmap_opts=opts.VisualMapOpts(max_=130, min_=95), ) ) return cmap = map_visualmap(sequence, '新冠病毒感染情况')map.render(path='2020.html')看一下成果吧!
以上就是小编整理的全部内容,感谢大家的学习和支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
1月20日消息,今日,武汉、北京、广东以及浙江等地相继发布新型冠状病毒感染的肺炎情况。其中,武汉18日、19日两日共新确诊病例136例,广东省深圳市确诊1例,北
全球除中国外的确诊数量已经超过了我国原先的确诊数量,目前看来距离疫情结束时间尚早。由于冠状病毒在美国蔓延,引发了众多民众的恐慌,因此在过去的一个月中,焦急的消费
1月21日消息,携程今日发布公告称,公司针对此次疫情推出了数项退改保障政策。携程表示,确诊为新型冠状病毒肺炎或因疑似新型冠状肺炎被机场(港口)隔离劝返的用户,以
全球除中国外的确诊数量已经超过了我国原先的确诊数量,目前看来距离疫情结束时间尚早。由于冠状病毒在美国蔓延,引发了众多民众的恐慌,因此在过去的一个月中,焦急的消费
2月27日消息,亚马逊已经在“冠状病毒”等相关内容的搜索结果页面新增了提醒通知。当用户在亚马逊上搜索“冠状病毒”、“COVID-19”或“N95口罩”等与冠状病