1. import csv
    import selenium.webdriver
    from selenium.webdriver.chrome.options import Options

    class spider():
    def get_msg(self,url):
    global timeNum, provinceDic
    # 无窗口弹出操作
    options = Options()
    options.add_argument('--headless')
    options.add_argument('--disable-gpu')
    driver=selenium.webdriver.Chrome(options=options)
    driver.get(url)
    timeNum=driver.find_element_by_xpath('//*[@id="charts"]/div[2]/span[1]').text#实时
    icbar_confirm=driver.find_element_by_xpath('//*[@id="charts"]/div[3]/div[1]/div[1]').text#全国确诊数
    icbar_suspect=driver.find_element_by_xpath('//*[@id="charts"]/div[3]/div[2]/div[1]').text#疑似病例数
    icbar_cure=driver.find_element_by_xpath('//*[@id="charts"]/div[3]/div[3]/div[1]').text#治愈人数
    icbar_dead=driver.find_element_by_xpath('//*[@id="charts"]/div[3]/div[4]/div[1]').text#死亡人数
    print("{}\n全国确诊:{}\n疑似病例:{}\n治愈人数:{}\n死亡人数:{}\n".format(timeNum, icbar_confirm, icbar_cure, icbar_dead,icbar_suspect))
    place_current=driver.find_elements_by_css_selector('div[class="place current"]')#湖北省的数据
    place = driver.find_elements_by_css_selector('div[class="place"]')#其他省的数据
    place_= driver.find_elements_by_css_selector('div[class="place "]')#其他省的数据
    place_no_sharp = driver.find_elements_by_css_selector("div[class='place no-sharp ']")#自治区的数据
    tplt = "{0:{4}<10}\t{1:{4}<15}\t{2:{4}<15}\t{3:{4}<15}"
    print(tplt.format("地区","确诊人数","治愈人数","死亡人数",chr(12288)) + "\n")
    # 建立一个字典,键为省名,值为省的具体数据
    provinceDic=dict()
    provinceDic["全国"]=["全国",icbar_confirm, icbar_cure, icbar_dead, icbar_suspect]
    places = place_current + place + place_ + place_no_sharp # 所有的行省的数据列表合集
    for place in places:
    # print(place.text)
    name=place.find_element_by_css_selector("span[class='infoName']").text
    confirm=place.find_element_by_css_selector("span[class='confirm'] span").text
    try:
    heal=place.find_element_by_css_selector("span[class='heal '] span").text
    except:
    heal = place.find_element_by_css_selector("span[class='heal hide'] span").text
    try:
    dead=place.find_element_by_css_selector("span[class='dead '] span").text
    except:
    dead=place.find_element_by_css_selector("span[class='dead hide'] span").text
    print(tplt.format(name,confirm,heal,dead,chr(12288)))
    provinceDic[name]=[name,confirm,heal,dead]
    def save_data_as_csv(self,filename,dataList):
    # filename="_".join(time.split(":"))
    filename=filename.replace(":"," ")#调整时间
    with open(filename+".csv","w",newline="") as f:
    writer=csv.writer(f)
    writer.writerow(["地区","确诊人数","治愈人数","死亡人数","疑似病例"])
    for i in dataList:
    writer.writerow(i)
    f.close()
    def main(self):
    url = "https://news.qq.com/zt2020/page/feiyan.htm"
    self.get_msg(url)
    self.save_data_as_csv(timeNum,provinceDic.values())

    billie=spider()
    billie.main()

  1.  

selenium爬虫 | 爬取疫情实时动态的更多相关文章

  1. selenium爬虫 | 爬取疫情实时动态(二)

    '''@author:Billie更新说明:1-28 17:00 项目开始着手,spider方法抓取到第一条疫情数据,save_data_csv方法将疫情数据保存至csv文件1-29 13:12 目标 ...

  2. 使用selenium再次爬取疫情数据(链接数据库)

    爬取网页地址: 丁香医生 数据库连接代码: def db_connect(): try: db=pymysql.connect('localhost','root','zzm666','payiqin ...

  3. [python爬虫] Selenium定向爬取PubMed生物医学摘要信息

    本文主要是自己的在线代码笔记.在生物医学本体Ontology构建过程中,我使用Selenium定向爬取生物医学PubMed数据库的内容.        PubMed是一个免费的搜寻引擎,提供生物医学方 ...

  4. Python3.x:Selenium+PhantomJS爬取带Ajax、Js的网页

    Python3.x:Selenium+PhantomJS爬取带Ajax.Js的网页 前言 现在很多网站的都大量使用JavaScript,或者使用了Ajax技术.这样在网页加载完成后,url虽然不改变但 ...

  5. 使用Python爬虫爬取网络美女图片

    代码地址如下:http://www.demodashi.com/demo/13500.html 准备工作 安装python3.6 略 安装requests库(用于请求静态页面) pip install ...

  6. python3爬虫爬取网页思路及常见问题(原创)

    学习爬虫有一段时间了,对遇到的一些问题进行一下总结. 爬虫流程可大致分为:请求网页(request),获取响应(response),解析(parse),保存(save). 下面分别说下这几个过程中可以 ...

  7. selenium登录爬取知乎出现:请求异常请升级客户端后重试的问题(用Python中的selenium接管chrome)

    一.问题使用selenium自动化测试爬取知乎的时候出现了:错误代码10001:请求异常请升级客户端后重新尝试,这个错误的产生是由于知乎可以检测selenium自动化测试的脚本,因此可以阻止selen ...

  8. 使用selenium 多线程爬取爱奇艺电影信息

    使用selenium 多线程爬取爱奇艺电影信息 转载请注明出处. 爬取目标:每个电影的评分.名称.时长.主演.和类型 爬取思路: 源文件:(有注释) from selenium import webd ...

  9. Python爬虫 - 爬取百度html代码前200行

    Python爬虫 - 爬取百度html代码前200行 - 改进版,  增加了对字符串的.strip()处理 源代码如下: # 改进版, 增加了 .strip()方法的使用 # coding=utf-8 ...

随机推荐

  1. 苹果M1芯片各种不支持,但居然可以刷朋友圈!你会买单吗?

    上个月和大家一起分享过,最新的苹果M1芯片上支持的各种开源软件.什么?还没读过?赶紧点这里:一文解读苹果 M1 芯片电脑上的开源软件. 现在已经过去了半个月,想必有不少的同学都已经入手了最新的苹果M1 ...

  2. react第二单元(react的组件-state-props-setState)

    第二单元(react的组件-state-props-setState) 课程目标 理解组件和组件的创建.以及能够根据实际场景去划分合理的组件. 理解并且能够灵活的应用组件中的state.props. ...

  3. Spring Cloud正式移除Hystrix、Zuul等Netflix OSS组件

    1. 前言 2020-12-22日Spring官方博客宣布,Spring Cloud 2020.0.0正式发布.2020.0.0是第一个使用新的版本号命名方案的Spring Cloud发行版本.在此之 ...

  4. Core3.0返回的Json数据大小写格式问题

    前言 测试发现,CoreWebAPI返回的Json数据,会将字段的首字母转换为小写, 经百度得,返回数据会默认驼峰命名,导致的. 随即百度, https://www.cnblogs.com/cdone ...

  5. 6.自定义view-侧边字母导航LetterNavigationBar

    1.效果 2.实现原理 1.绘制右侧的字母 2.onTouchEvent 中获取点击.滑动的位置,在通过invalidate() 去重新绘制, ​ 回调给activity去处理中间显示的文字 核心代码 ...

  6. 发送微信通知 java 实现

    /实现类 @Service public class WeChatServiceImpl implements IWeChatService { @Override public WeChatSend ...

  7. [leetcode]380. Insert Delete GetRandom O(1)设计数据结构,实现存,删,随机取的时间复杂度为O(1)

    题目: Design a data structure that supports all following operations in average O(1) time.1.insert(val ...

  8. Kafka体系架构、命令、Go案例

    原文地址:https://github.com/WilburXu/blog/blob/master/kafka/Kafka基本架构和命令.md Kafka体系架构 Broker服务代理节点 服务代理节 ...

  9. web版文件管理系统 ——文件图标的获取

    需求来源:公司需要一个文件的管理系统,方便管理公司文档以及互相传阅以及一些权限控制的便利,其中极小的一块功能点就是现实文件列表里面的图标获取,从网上找图标太麻烦,而且不现实,不可能用户每次上传文件等你 ...

  10. noip2016自测报告

    随便测了一下2016的提高组,发现自己还是太菜了... day1 T1:玩具谜题 一个模拟题,打挂了,只有95分,错的很傻逼 code: #include<bits/stdc++.h> u ...