首先,我们进入目标页面:腾讯网

如下图所示,按F12进入开发者选项,接着点击 【网络】(如下箭头所示),然后刷新页面。

刷新页面之后,我们就可以看到下面多了很多内容,这是浏览器接收到服务器返回的信息。

点击选中的任意一行,我们可以看到:

(上面截图使用浏览器:火狐浏览器)

(上面截图使用浏览器:谷歌浏览器)

通过上图,我们可以看到服务器返回的部分国家的历史疫情信息,客户端请求方法为POST。

现在,我们开始准备爬取数据,如下图所示,复制url:

意大利:
https://api.inews.qq.com/newsqa/v1/query/pubished/daily/list?country=%E6%84%8F%E5%A4%A7%E5%88%A9&伊朗:
https://api.inews.qq.com/newsqa/v1/query/pubished/daily/list?country=%E4%BC%8A%E6%9C%97&西班牙:
https://api.inews.qq.com/newsqa/v1/query/pubished/daily/list?country=%E8%A5%BF%E7%8F%AD%E7%89%99&

其中,URL链接后面的country=之后是国家名(编码方式问题,不宜阅读)

由此,我们可以得到想要的URL接口:

https://api.inews.qq.com/newsqa/v1/query/pubished/daily/list?country=国家名

下面是全部代码,爬取结果保存至excel文件中:

'''
爬取给定国家的疫情历史信息
'''
import requests
import xlwt
import datetime
import json
import sysdef getURLContent(url):headers = {'user-agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Mobile Safari/537.36'}response = requests.post(url, headers=headers)return response.status_code, responsedef getCountryEpidemiSituationInfo(workbook, country_list):for index, country_i in enumerate(country_list):# 创建一个worksheetworksheet = workbook.add_sheet(country_i)print("开始爬取 %s 的疫情数据... ... " % country_i)url = 'https://api.inews.qq.com/newsqa/v1/query/pubished/daily/list?country=%s' % country_istatus_code, data = getURLContent(url)if status_code != 200:print("%s数据爬取失败,状态码%d" % (country_i, status_code))sys.exit()data = data.json()["data"]if data == None:print("%s数据爬取数据为空" % country_i)breakworksheet.col(0).width = 128 * 20  # 设置excel中第A列的宽度(方便日期数据展示)current_row_index = 0  # 记录当前所写入数据的行号# 将列标题写入excelfor i, str_col in enumerate(['date', 'confirm_add', 'confirm', 'heal', 'dead', 'suspect']):worksheet.write(current_row_index, i, str_col)  # 参数对应 行, 列, 值current_row_index += 1# 往excel中写入日期格式style = xlwt.XFStyle()style.num_format_str = 'YYYY/MM/DD'# 将抓取到的疫情数据写入excelfor data_i in data:worksheet.write(current_row_index, 0, datetime.datetime.strptime('2020.' + data_i['date'], "%Y.%m.%d"), style)worksheet.write(current_row_index, 1, data_i['confirm_add'])worksheet.write(current_row_index, 2, data_i['confirm'])worksheet.write(current_row_index, 3, data_i['heal'])worksheet.write(current_row_index, 4, data_i['dead'])worksheet.write(current_row_index, 5, data_i['suspect'])current_row_index += 1if __name__ == "__main__":# 创建一个workbook 设置编码workbook = xlwt.Workbook(encoding='utf-8')# 添加要爬取疫情数据的国家country = ["美国", "加拿大", "意大利", "英国", "法国", "丹麦", "韩国", "日本本土", "德国"]getCountryEpidemiSituationInfo(workbook, country)# 保存workbook.save('./data/疫情历史数据.xls') #这里不要使用.xlsx格式保存,否则无法打开!!!原因与库xlwt有关,如需要保存为.xlsx格式,需要使用其他第三方库操作

结果:

Python编程-使用爬虫程序爬取肺炎疫情数据-1 爬取给定国家的历史疫情信息相关推荐

  1. 每日一练:Python爬虫爬取全国新冠肺炎疫情数据实例详解,使用beautifulsoup4库实现

    Python 爬虫篇 - 爬取全国新冠肺炎疫情数据实例详解 效果图展示 第一章:疫情信息的下载与数据提取 ① 爬取页面数据到本地 ② json 字符串正则表达式分析 ③ 提取数据中的 json 字符串 ...

  2. python 北上资金_python爬虫技术:北向资金数据自动爬取!

    好久不见!今天我们继续python的话题啦.python现在势头凶得很,没事刷抖音.刷朋友圈.看公众号,弹出的广告总少不了python."python带你发家致富,财富自由!"广告 ...

  3. COVID-19 肺炎疫情数据实时监控(python 爬虫 + pyecharts 数据可视化 + wordcloud 词云图)

    文章目录 [1x00]前言 [2x00]思维导图 [3x00]数据结构分析 [4x00]主函数 main() [5x00]数据获取模块 data_get [5x01]初始化函数 init() [5x0 ...

  4. Python实现对主要城市及其周边地区天气数据的爬取

    python爬虫学习爬虫(爬取指定网站数据) Python实现对主要城市及其周边地区天气数据的爬取,关键步骤已经做了注释此版本仅是初学者的学习版,不喜勿喷 #coding: utf-8 import ...

  5. 爬取并处理中国新冠肺炎疫情数据

    项目名称: 爬取并处理中国新冠肺炎疫情数据 目的: 通过Python爬取中国新冠肺炎疫情数据,存入Excel,对此数据分析并进行可视化,制作查询中国疫情情况的GUI界面. 具体内容: 通过Python ...

  6. 新冠肺炎疫情数据爬取以及几种简单的地图可视化方法

    众所周知,新冠肺炎疫情是一次很流行的全球性公共卫生事件.如今我国疫情已经好了许多,但世界各国的疫情依然严峻.特殊时期,正好尝试一下疫情网络数据的抓取,并用几种python库对数据进行简单的地图可视化( ...

  7. 【阅读心得】Python编程无师自通——专业程序员的养成

    读书笔记: 笔者是一个稍微有点编程基础的人,学习python一开始是从吴恩达的视频入门的,但是直接套用框架,使用模块,对python的语法却不甚了解,我也试过直接去廖雪峰的python学习网站上面学习 ...

  8. Java网络爬虫--一步步使用Java网络爬虫技术实现豆瓣读书Top250数据的爬取,并插入数据库

    一步步使用Java网络爬虫技术实现豆瓣读书Top250数据的爬取,并插入数据库 目录 一步步使用Java网络爬虫技术实现豆瓣读书Top250数据的爬取,并插入数据库 第一步:创建项目,搭建项目结构 p ...

  9. 如何爬一个网站的数据-免费爬取网站的任意数据软件

    如何爬一个网站的数据?爬取网络数据大家称之为网络爬行 收集页面以创建索引或集合.另一方面,网络抓取下载页面以提取一组特定的数据用于分析目的,例如,产品详细信息.定价信息.SEO 数据或任何其他数据集. ...

最新文章

  1. Html5的页面基本结构标签,HTML5:简介和文档基本结构
  2. 李开复「预见2021」:自动化成企业升级转型刚需 | AI日报
  3. mysql if exist坑
  4. python实现英文新闻摘要自动提取_用python机器学习实现新闻关键词的抽取
  5. 利用反射技术修改类中的字段(成员变量的反射)
  6. [JS进阶] JS 之Blob 对象类型
  7. 微信公众号完美解决关注后三次获取media_id重复3次的问题
  8. mysql update 子表,mysql update 子查询锁表问题
  9. 搜狗url自动推送工具 - 最新版 一直更新
  10. html中document和Document的区别。
  11. 《HelloGitHub》第 81 期
  12. 纯硬件无人直播手机,不需要电脑,不需要虚拟摄像头,可人工干预、可粉丝互动,半无人直播
  13. 小白思路理顺U-Net模型(keras)--预测部分
  14. TensorFlow 、Caffe等9大人工智能框架对比介绍
  15. VMware发布Project Monterey
  16. 2022年计算机一级MS Office模拟冲刺题及答案
  17. WampServer的下载方法
  18. 中国计算机软件工程大学专业,全国开设软件工程专业院校有哪些 都有什么大学名单...
  19. 菜单制作工具下载中文版 绿色软件
  20. Failed to start LSB: Bring up/down networking 终极解决方法

热门文章

  1. 微信小程序编译时警告:Component “pages/test2/test2“ does not have a method “ getData“ to handle event “t
  2. JS 滚动屏幕至顶端
  3. Android studio隐藏app应用图标
  4. php 购买车票,jQuery实现买火车票城市选择切换功能
  5. Python—期末考试模拟训练题
  6. Python实战 | 如何一次检查大量网页是否更新?
  7. Packet Tracer 5.0建构CCNA实验攻略(12)——PPP
  8. Markdown编辑器使用方法
  9. C++ 开发贪吃蛇游戏总结
  10. 计算机管理关机在哪,电脑定时开关机在哪里设置