Python根据新冠疫情实现爬虫数据可视化

#第一步,导入selenium模块的webdrivier包
# By是selenium中内置的一个class,在这个class中有各种方法来定位元素
# 导入Keys模块以后,可以来模拟键盘操作
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import pandas as pd
from pyecharts.charts import Map #pyecharts绘制map地图   Map地图主要用于地理区域数据的可视化
from pyecharts import options as opts
driver = webdriver.Chrome(r"C:\Program Files\Google\Chrome\Application\chromedriver.exe")
driver.get("https://www.baidu.com/")
driver.find_element_by_id("kw").send_keys("疫情",Keys.ENTER)
driver.implicitly_wait(3)
driver.find_element_by_xpath("//*[@id='1']/div/div[2]/a/div[1]/div[1]").click()   #国内疫情xpath地址
driver.switch_to_window(driver.window_handles[-1])                               #切换到最新打开窗口
driver.find_element_by_xpath("//*[@id='nationTable']/div/span").click()          #展开全部
yqdata_raw=driver.find_element_by_id("nationTable")                              #整个数据表格的id
yqdata_raw_list=yqdata_raw.find_elements_by_tag_name("tr")
data_list=[]
for i,yqdata in enumerate(yqdata_raw_list):
    data_dict={}
    if i==0:
        continue
    data_dict["area"]=yqdata.find_elements(By.TAG_NAME,"span")[1].text   
    data_dict["new_add"]=yqdata.find_elements_by_tag_name("td")[1].text
    data_dict["new_data"]=yqdata.find_elements_by_tag_name("td")[2].text
    data_dict["total"]=yqdata.find_elements_by_tag_name("td")[3].text
    data_dict["cure"]=yqdata.find_elements_by_tag_name("td")[4].text
    data_dict["death"]=yqdata.find_elements_by_tag_name("td")[-1].text
    data_list.append(data_dict)
df = pd.DataFrame(data_list)
#转换成列表
area_list=list(df.area)
data_list=list(df.new_data)
data=[list(i) for i in zip(area_list,data_list)]  #组合
yq_map=(Map()
        .add("国内疫情现存情况",data,maptype="china")     #将数据添加进去,生成中国地图,所以maptype要对应china
        .set_global_opts(
    visualmap_opts=opts.VisualMapOpts(is_piecewise=True,pieces=[         #设置是否为分段显示,然后通过 pieces来设置自定义数据范围和对应的颜色
        {"min": 10000, "label": '10000人以及上', "color": "#6F171F"},       
        {"min": 1000, "max":9999,"label": '1000-9999人', "color": "#990000"},
        {"min": 500, "max": 999, "label": '500-999人', "color": "#C92C34"},
        {"min": 100, "max": 499, "label": '100-499人', "color": "#E35B52"},
        {"min": 10, "max": 99, "label": '10-99人', "color": "#F39E86"},
        {"min": 1, "max": 9, "label": '1-9人', "color": "#FDEBD0"},
        {"max": 0,"label": '0人', "color": "#e5f2ff"}]))
       )
yq_map.render_notebook() #显示地图

实现效果:

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值