实验内容:

编写程序采用爬虫技术爬取各国疫情数据,进行存储并进行数据可视化,要求可以看到各国今日新增确诊数、累计确诊数。

实验方法:

爬取数据

通过以下的步骤,获取到了各国和我国今日的新增确诊数、累计确诊数、各国的历史患病数据。

选取腾讯新闻网的肺炎板块作为数据源,如图1所示。

图1 腾讯新闻肺炎板块

通过谷歌浏览器的开发者工具查看该页面的数据,筛选network中的数据源类型为XHR,发现需要的各国疫情数据存放在ranklist中,其中的数据如图2所示。

图2 ranklist数据内容

可以看出ranklist是以json类型存放数据,其中data中的每一项都对应着一个国家今日的疫情数据,其中confirm字段存放的是今日该国家确诊总人数,confirmAdd是今日该国家新增确诊人数,name中存放的是该国家的国家名称。

通过查看ranklist的头部信息,如图3所示。可以看到数据所在的路径是:

https://api.inews.qq.com/newsqa/v1/automation/foreign/country/ranklist

获取数据采用的方式是post。

图3 ranklist头部信息

通过如下代码,将国家名称、累计确诊、新增和当前确诊的数据保存到country、confirm、cinfirmAdd、nowConfirm这四个列表中,读取json节点数据用的是jsonpath包,需要pip安装。再获取各国历史数据存储到excel表。

url = 'https://api.inews.qq.com/newsqa/v1/automation/foreign/country/ranklist'  # 获取到各个国家疫情数据  resp = requests.post(url)  # 提取数据,先把json类型转成字典  data = json.loads(resp.text)  country = jsonpath.jsonpath(data, "$..name")  # 国家名称  confirm = jsonpath.jsonpath(data, "$..confirm")  # 累计确诊  confirmAdd = jsonpath.jsonpath(data, "$..confirmAdd")  # 新增  nowConfirm = jsonpath.jsonpath(data, "$..nowConfirm")  # 当前确诊 # 但是其中没有我国的数据,采用和上面相似的方法获取中国数据,加入到上面列表中。china_url = 'https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5'  json_text = requests.get(china_url).json()  data = json.loads(json_text['data'])  china_confirm = data['chinaTotal']['confirm']  country.append('中国')  confirm.append(china_confirm)  # 接下来获取各国的历史疫情数据,以字典的方式存放到all_data中。all_data = {}  header = {  'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36'}  for c in country:  history_url = 'https://api.inews.qq.com/newsqa/v1/automation/foreign/daily/list?country={0}'.format(c)    resp = requests.post(history_url, headers=header)  data = json.loads(resp.text)['data']  all_data[c] = data  

数据清洗与整理

以上各国和我国今日的新增确诊数、累计确诊数数据量较小,计划采用世界地图和柱状图的方式直接绘制,不进行存储。而各国的历史疫情数据多达上万条记录,需要进行存储。使用以下代码将数据按使用的可视化工具的存储格式要求写入excel表中,写入excel表时我先读出第一个国家的数据时把日期打印到第一行,以后的每个国家数据都是在上一个国家数据的下一行一列一列写入的,如果之后的国家某日数据为空,与第一个国家打印出来的日期不对应,就很容易造成写入位置不对,日期和数据的顺序不对应。所以我选取3月25日之后的数据,因为3月25日这些国家已经都出现了病例,不会出现日期和数据不对应的情况。

workbook = xlwt.Workbook(encoding='utf-8')
worksheet = workbook.add_sheet('My Worksheet')
for i in all_data.keys():  wb = xlrd.open_workbook('外国疫情数据表.xls', )  tabsheet = wb.sheets()[0]  k = tabsheet.nrows  if k == 0:  worksheet.write(k+1, 0, i)  else:  worksheet.write(k, 0, i)  save_count = 0  for t, j in enumerate(all_data[i]):  # 第一个国家按照日期数据生成一行  test = sortdate(str(j['date']))  if i == '美国' and sortdate(str(j['date'])) >= datetime.date(2020, 3, 25):  print('美国输出时间3月25以后')  print(sortdate(str(j['date'])))  worksheet.write(0, save_count + 1, str(sortdate(str(j['date']))))  worksheet.write(1, save_count + 1, j['confirm'])  save_count += 1  #   其余的国家只填入确诊数量  if sortdate(str(j['date'])) >= datetime.date(2020, 3, 25) and i != '美国':  worksheet.write(k, save_count + 1, j['confirm'])  save_count += 1  workbook.save('外国疫情数据表.xls') 

存储得到的外国疫情数据表.xls内容如图4所示。

标题图4 存储各国历史数据到表格
data_list = list(zip(country, confirm))  # 数据可视化 把今天各国的确诊人数用世界地图的方式展示  # pyecharts有比较好的动态效果 静态可选用matplotlib  map = Map(opts.InitOpts(width='1600px', height='900px')).add(  series_name="世界疫情分布-s1971齐畅",  data_pair=data_list,  maptype="world",  is_map_symbol_show=False,  name_map=nameMap)  # 设置默认不显示全部国家名称  map.set_series_opts(label_opts=opts.LabelOpts(is_show=False))  # 设置全局配置项  map.set_global_opts(visualmap_opts=opts.VisualMapOpts(max_=2400000, is_piecewise=True))  map.render('世界疫情分布情况.html')  各国的今日新增,采用matplotlib绘制柱状图。sortAdd = sorted(zip(confirmAdd, country))  sortAdd.reverse()  showCountry = list(list(zip(*sortAdd))[1])  showAdd = list(list(zip(*sortAdd))[0])  # 绘制柱状图展示各国新增确诊  plt.figure(figsize=[120, 60])  plt.rcParams['font.sans-serif'] = ['SimHei']  plt.rcParams['axes.unicode_minus'] = False  pl = plt.subplot(221)  plt.bar(showCountry[:20], showAdd[:20], width=0.5, color='deepskyblue')  plt.ylabel("今日新增确诊人数", rotation=90)  today = datetime.datetime.now()  plt.title(today.strftime("%Y-%m-%d") + "各国新冠肺炎患者新增数")  plt.xticks(showCountry[:20], rotation=-60)  x_major = MultipleLocator(1)  ax = plt.gca()  ax.xaxis.set_major_locator(x_major)  for a, b in zip(showCountry[:20], showAdd[:20]):  plt.text(a, b, b, ha='center', va='bottom', size=8)  plt.sca(pl)  plt.show()  

数据可视化

各国的今日确诊数据,我用pyecharts包中的世界地图做展示,地图绑定数据源的代码如下所示,其中country和confirm是2(1)中保存数据的列表。其中有一个问题是从网站上爬取下来的国家名称是中文,但pyecharts包中国家名称是英文,所以需要一个中英文的名称映射,也就是下面代码中的nameMap,nameMap的具体内容可见后文中的全部源代码。nameMap可以在网上直接找到,但是直接应用时出现了一些国家数据显示不出来的状况,这是因为nameMap映射中的英文名称和pyecharts中的英文名称不对应,或者是nameMap中的中文名称与网站爬下来的数据中的国家中文名称不对应,我已经一一做出修改。

各国的历史数据,采用flourish可视化工具进行可视化。上传保存的外国疫情数据表.xls,修改label和values等属性,再将结果用录屏软件导出成动图和视频。但该工具未成为会员的用户不能显示全部数据变化情况,仅能显示前十名。

图5 flourish工具

实验结果

对各国的今日疫情数据,我用pyecharts包中的世界地图做展示,如图6所示,把每个国家累计确诊人数分为如图6中左下图例的颜色区间,默认显示的就是世界地图,各个地区按照确诊人数的不同显示不同颜色。在鼠标触碰到某个国家的地图时会显示该国家的确诊人数。鼠标触碰左下区间时会亮起对应的国家。(这个区间划分不太合理,有个区间空了,但是没改)

图6 世界疫情地图

根据各国新增数据,绘制的图像如图7所示。

图7 各国今日新增确诊柱状图

根据各国疫情历史数据制作了动态图表如图8所示,可以动态展示3月25日到6月19日的确诊人数前十名疫情变化。用例中表示的是有数据的国家,但是动态图只展示确诊数前十的国家。

图8 各国确诊人数变化情况(2020-3-25至2020-6-19)
  1. 总结与不足

通过本次的学习,第一次接触了爬虫技术,丰富了以后学习中获取数据的方式,并且熟悉了pyecharts包和flourish等数据可视化工具,但因为时间和精力有限,学习仍然存在着如下的不足:

  1. 对怎样应对网站的反爬却了解的不够多。
  2. 对爬虫时如何获取到想要的数据所在位置仍然没有很多的研究,需要在以后的实践中丰富经验。

爬取到的各国疫情数据实际上是从1月份开始的,但是可视化时为了保存数据格式方便却只用了3月25日以后的数据,如果能将之前的数据加入到可视化中,变化的趋势会更加明了。另外爬取的我国数据只有6月份的,3~4月的数据没有爬取到。

全部源代码

import json
import requests
import jsonpath
import xlrd as xlrd
import xlwt as xlwt
from pyecharts.charts import Map, Geo
from pyecharts import options as opts
import matplotlib.pyplot as plt
from matplotlib.pyplot import MultipleLocator
import datetime
import xlwt
url = 'https://api.inews.qq.com/newsqa/v1/automation/foreign/country/ranklist'
# 获取到各个国家疫情数据
resp = requests.post(url)
# 提取数据,先把json类型转成字典
data = json.loads(resp.text)
country = jsonpath.jsonpath(data, "$..name")  # 国家名称
confirm = jsonpath.jsonpath(data, "$..confirm")  # 累计确诊
confirmAdd = jsonpath.jsonpath(data, "$..confirmAdd")  # 新增
nowConfirm = jsonpath.jsonpath(data, "$..nowConfirm")  # 当前确诊
showContent = []
china_url = 'https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5'
json_text = requests.get(china_url).json()
data = json.loads(json_text['data'])
china_confirm = data['chinaTotal']['confirm']
country.append('中国')
confirm.append(china_confirm)
data_list = list(zip(country, confirm))  # 数据可视化 把今天各国的确诊人数用世界地图的方式展示
# pyecharts有比较好的动态效果 静态可选用matplotlib
map = Map(opts.InitOpts(width='1600px', height='900px')).add(  series_name="世界疫情分布-s1971齐畅",  data_pair=data_list,  maptype="world",  is_map_symbol_show=False,  name_map=nameMap)
# 设置默认不显示全部国家名称
map.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
# 设置全局配置项
map.set_global_opts(visualmap_opts=opts.VisualMapOpts(max_=2400000, is_piecewise=True))
map.render('世界疫情分布情况.html')  sortAdd = sorted(zip(confirmAdd, country))
sortAdd.reverse()
showCountry = list(list(zip(*sortAdd))[1])
showAdd = list(list(zip(*sortAdd))[0])
# 绘制柱状图展示各国新增确诊
plt.figure(figsize=[120, 60])
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
pl = plt.subplot(221)
plt.bar(showCountry[:20], showAdd[:20], width=0.5, color='deepskyblue')
plt.ylabel("今日新增确诊人数", rotation=90)
today = datetime.datetime.now()
plt.title(today.strftime("%Y-%m-%d") + "各国新冠肺炎患者新增数")
plt.xticks(showCountry[:20], rotation=-60)
x_major = MultipleLocator(1)
ax = plt.gca()
ax.xaxis.set_major_locator(x_major)
for a, b in zip(showCountry[:20], showAdd[:20]):  plt.text(a, b, b, ha='center', va='bottom', size=8)
plt.sca(pl)
plt.show()  def sortdate(today):  list1 = today.split('.')  today = datetime.date(2020, int(list1[0].replace('0', '')), int(list1[1]))  return today  url = 'https://api.inews.qq.com/newsqa/v1/automation/foreign/country/ranklist'
# 获取到各个国家疫情数据
resp = requests.post(url)
# 提取数据,先把json类型转成字典
data = json.loads(resp.text)
country = jsonpath.jsonpath(data, "$..name")  # 国家名称  all_data = {}
header = {  'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36'}
for c in country:  history_url = 'https://api.inews.qq.com/newsqa/v1/automation/foreign/daily/list?country={0}'.format(c)  resp = requests.post(history_url, headers=header)  data = json.loads(resp.text)['data']  all_data[c] = data
workbook = xlwt.Workbook(encoding='utf-8')
worksheet = workbook.add_sheet('My Worksheet')
for i in all_data.keys():  wb = xlrd.open_workbook('外国疫情数据表.xls', )  tabsheet = wb.sheets()[0]  k = tabsheet.nrows  if k == 0:  worksheet.write(k+1, 0, i)  else:  worksheet.write(k, 0, i)  save_count = 0  for t, j in enumerate(all_data[i]):  # 第一个国家按照日期数据生成一行  test = sortdate(str(j['date']))  if i == '美国' and sortdate(str(j['date'])) >= datetime.date(2020, 3, 25):  print('美国输出时间3月25以后')  print(sortdate(str(j['date'])))  worksheet.write(0, save_count + 1, str(sortdate(str(j['date']))))  worksheet.write(1, save_count + 1, j['confirm'])  save_count += 1  #   其余的国家只填入确诊数量  if sortdate(str(j['date'])) >= datetime.date(2020, 3, 25) and i != '美国':  worksheet.write(k, save_count + 1, j['confirm'])  save_count += 1  workbook.save('外国疫情数据表.xls')
nameMap = {  'Afghanistan': '阿富汗',  'Albania': '阿尔巴尼亚',  'Algeria': '阿尔及利亚',  'Andorra': '安道尔',  'Angola': '安哥拉',  'Antarctica': '南极洲',  'Antigua and Barbuda': '安提瓜和巴布达',  'Argentina': '阿根廷',  'Armenia': '亚美尼亚',  'Australia': '澳大利亚',  'Austria': '奥地利',  'Azerbaijan': '阿塞拜疆',  'The Bahamas': '巴哈马',  'Bahrain': '巴林',  'Bangladesh': '孟加拉国',  'Barbados': '巴巴多斯',  'Belarus': '白俄罗斯',  'Belgium': '比利时',  'Belize': '伯利兹',  'Benin': '贝宁',  'Bermuda': '百慕大',  'Bhutan': '不丹',  'Bolivia': '玻利维亚',  'Bosnia and Herzegovina': '波斯尼亚和黑塞哥维那',  'Botswana': '博茨瓦纳',  'Brazil': '巴西',  'Brunei': '文莱',  'Bulgaria': '保加利亚',  'Burkina Faso': '布基纳法索',  'Burundi': '布隆迪',  'Cambodia': '柬埔寨',  'Cameroon': '喀麦隆',  'Canada': '加拿大',  'Cape Verde': '佛得角',  'Central African Rep.': '中非共和国',  'Chad': '乍得',  'Chile': '智利',  'China': '中国',  'Colombia': '哥伦比亚',  'Congo': '刚果(布)',  'Comoros': '科摩罗',  'Republic of the Congo': '刚果共和国',  'Costa Rica': '哥斯达黎加',  'Croatia': '克罗地亚',  'Cuba': '古巴',  'Cyprus': '塞浦路斯',  'Czech Republic': '捷克共和国',  'Denmark': '丹麦',  'Dem. Rep. Congo': '刚果(金)',  'Dem. Rep. Korea': '朝鲜',  'Djibouti': '吉布提',  'Dominica': '多米尼加',  'Dominican Republic': '多明尼加共和国',  'Ecuador': '厄瓜多尔',  'Egypt': '埃及',  'El Salvador': '萨尔瓦多',  'Equatorial Guinea': '赤道几内亚',  'Eritrea': '厄立特里亚',  'Estonia': '爱沙尼亚',  'Ethiopia': '埃塞俄比亚',  'Falkland Islands': '福克兰群岛',  'Faroe Islands': '法罗群岛',  'Fiji': '斐济',  'Finland': '芬兰',  'France': '法国',  'French Guiana': '法属圭亚那',  'French Southern and Antarctic Lands': '法属南半球和南极领地',  'Gabon': '加蓬',  'Gambia': '冈比亚',  'Gaza Strip': '加沙',  'Georgia': '格鲁吉亚',  'Germany': '德国',  'Ghana': '加纳',  'Greece': '希腊',  'Greenland': '格陵兰',  'Grenada': '格林纳达',  'Guadeloupe': '瓜德罗普',  'Guatemala': '危地马拉',  'Guinea': '几内亚',  'Guinea Bissau': '几内亚比绍',  'Guyana': '圭亚那',  'Haiti': '海地',  'Honduras': '洪都拉斯',  'Hong Kong': '香港',  'Hungary': '匈牙利',  'Iceland': '冰岛',  'India': '印度',  'Indonesia': '印度尼西亚',  'Iran': '伊朗',  'Iraq': '伊拉克',  'Iraq-Saudi Arabia Neutral Zone': '伊拉克阿拉伯中立区',  'Ireland': '爱尔兰',  'Isle of Man': '马恩岛',  'Israel': '以色列',  'Italy': '意大利',  'Ivory Coast': '科特迪瓦',  'Jamaica': '牙买加',  'Jan Mayen': '扬马延岛',  'Japan': '日本本土',  'Jordan': '约旦',  'Kazakhstan': '哈萨克斯坦',  'Kenya': '肯尼亚',  'Kerguelen': '凯尔盖朗群岛',  'Kiribati': '基里巴斯',  'North Korea': '北朝鲜',  'Korea': '韩国',  'Kuwait': '科威特',  'Kyrgyzstan': '吉尔吉斯斯坦',  'Laos': '老挝',  'Latvia': '拉脱维亚',  'Lebanon': '黎巴嫩',  'Lesotho': '莱索托',  'Liberia': '利比里亚',  'Libya': '利比亚',  'Liechtenstein': '列支敦士登',  'Lithuania': '立陶宛',  'Luxembourg': '卢森堡',  'Macau': '澳门',  'Macedonia': '马其顿',  'Madagascar': '马达加斯加',  'Malawi': '马拉维',  'Malaysia': '马来西亚',  'Maldives': '马尔代夫',  'Mali': '马里',  'Malta': '马耳他',  'Martinique': '马提尼克',  'Mauritania': '毛里塔尼亚',  'Mauritius': '毛里求斯',  'Mexico': '墨西哥',  'Moldova': '摩尔多瓦',  'Monaco': '摩纳哥',  'Mongolia': '蒙古',  'Morocco': '摩洛哥',  'Mozambique': '莫桑比克',  'Myanmar': '缅甸',  'Namibia': '纳米比亚',  'Nepal': '尼泊尔',  'Netherlands': '荷兰',  'New Caledonia': '新喀里多尼亚',  'New Zealand': '新西兰',  'Nicaragua': '尼加拉瓜',  'Niger': '尼日尔',  'Nigeria': '尼日利亚',  'Northern Mariana Islands': '北马里亚纳群岛',  'Norway': '挪威',  'Oman': '阿曼',  'Pakistan': '巴基斯坦',  'Panama': '巴拿马',  'Papua New Guinea': '巴布亚新几内亚',  'Paraguay': '巴拉圭',  'Peru': '秘鲁',  'Philippines': '菲律宾',  'Poland': '波兰',  'Portugal': '葡萄牙',  'Puerto Rico': '波多黎各',  'Qatar': '卡塔尔',  'Reunion': '留尼旺岛',  'Romania': '罗马尼亚',  'Russia': '俄罗斯',  'Rwanda': '卢旺达',  'San Marino': '圣马力诺',  'Sao Tome and Principe': '圣多美和普林西比',  'Saudi Arabia': '沙特阿拉伯',  'Senegal': '塞内加尔',  'Seychelles': '塞舌尔',  'Sierra Leone': '塞拉利昂',  'Singapore': '新加坡',  'Slovakia': '斯洛伐克',  'Slovenia': '斯洛文尼亚',  'Solomon Islands': '所罗门群岛',  'Somalia': '索马里',  'South Africa': '南非',  'Spain': '西班牙',  'Sri Lanka': '斯里兰卡',  'St. Christopher-Nevis': '圣',  'St. Lucia': '圣露西亚',  'St. Vincent and the Grenadines': '圣文森特和格林纳丁斯',  'Sudan': '苏丹',  'Suriname': '苏里南',  'Svalbard': '斯瓦尔巴特群岛',  'Swaziland': '斯威士兰',  'Sweden': '瑞典',  'Switzerland': '瑞士',  'Syria': '叙利亚',  'Tanzania': '坦桑尼亚',  'Taiwan': '台湾',  'Tajikistan': '塔吉克斯坦',  'United Republic of Tanzania': '坦桑尼亚',  'Thailand': '泰国',  'Togo': '多哥',  'Tonga': '汤加',  'Trinidad and Tobago': '特里尼达和多巴哥',  'Tunisia': '突尼斯',  'Turkey': '土耳其',  'Turkmenistan': '土库曼斯坦',  'Turks and Caicos Islands': '特克斯和凯科斯群岛',  'Uganda': '乌干达',  'Ukraine': '乌克兰',  'United Arab Emirates': '阿联酋',  'United Kingdom': '英国',  'United States': '美国',  'Uruguay': '乌拉圭',  'Uzbekistan': '乌兹别克斯坦',  'Vanuatu': '瓦努阿图',  'Venezuela': '委内瑞拉',  'Vietnam': '越南',  'Western Sahara': '西撒哈拉',  'Western Samoa': '西萨摩亚',  'Yemen': '也门',  'Yugoslavia': '南斯拉夫',  'Democratic Republic of the Congo': '刚果民主共和国',  'Zambia': '赞比亚',  'Zimbabwe': '津巴布韦',  'South Sudan': '南苏丹',  'Somaliland': '索马里兰',  'Montenegro': '黑山',  'Kosovo': '科索沃',  'Republic of Serbia': '塞尔维亚',
}  

参考资料

[1]【爬取疫情数据 - 陈文彬 - 博客园】https://www.cnblogs.com/syzka/p/12747335.html

[2]【利用python爬取疫情最新数据 - 邵文 - 博客园】

https://www.cnblogs.com/wendi/p/12550610.html

[3]【5分钟python爬虫案例,手把手教爬取国内外最新疫情历史数据_qq_46614154的博客-CSDN博客】

https://blog.csdn.net/qq_46614154/article/details/10563484

python爬各国疫情数据,存储并进行数据可视化相关推荐

  1. 利用python爬取丁香医生上新型肺炎数据,并下载到本地,附带经纬度信息

    新增:国外疫情网站介绍 已更新:爬取国外疫情数据 已更新:新型肺炎历史数据下载 2020年3月27日补充: 制作了一个全球肺炎数据查询下载网站,效果如下: 访问地址:http://119.3.227. ...

  2. python爬取微博评论(无重复数据)

    python爬取微博评论(无重复数据) 前言 一.整体思路 二.获取微博地址 1.获取ajax地址2.解析页面中的微博地址3.获取指定用户微博地址 三.获取主评论 四.获取子评论 1.解析子评论2.获 ...

  3. python爬取b站弹幕并进行数据可视化

    python爬取b站弹幕并进行数据可视化 1.第一步,爬取b站弹幕 我们随便打开一个b站视频 打开开发者模式,在network下搜索list,可以找到该视频的弹幕文件 打开之后是这个样子的 结构还是比 ...

  4. 为了给小女友挑合适罩杯的内衣,我用 Python 爬了淘宝内衣店的数据!

    点击"开发者技术前线",选择"星标?" 13:21 在看|星标|留言,  真爱 编辑: 可可| 本文作者:躲猫猫的猫, 原文链接:https://www.cnb ...

  5. Python爬取豆瓣音乐存储MongoDB数据库(Python爬虫实战1)

    Python爬取豆瓣音乐存储MongoDB数据库(Python爬虫实战1) 1.  爬虫设计的技术 1)数据获取,通过http获取网站的数据,如urllib,urllib2,requests等模块: ...

  6. Python爬取王者荣耀英雄的皮肤数据并下载皮肤图片项目

    Python爬取王者荣耀英雄的皮肤数据,并下载皮肤图片!高清的图片用来做桌面也不错哟~ 网址:https://pvp.qq.com/web201605/herolist.shtml 1.获得英雄信息, ...

  7. python爬取电脑本地数据_利用python爬取丁香医生上新型肺炎数据,并下载到本地,附带经纬度信息...

    原标题:利用python爬取丁香医生上新型肺炎数据,并下载到本地,附带经纬度信息 新型肺炎肆虐全国,可以预知,最近一两年地理学中会有一部分论文研究新型肺炎的空间分布及与其他指标的关联分析.获取其患病人 ...

  8. python爬取分析超级大乐透历史开奖数据

    python爬取分析超级大乐透历史开奖数据 博主作为爬虫初学者,本次使用了requests和beautifulsoup库进行数据的爬取 爬取网站:http://datachart.500.com/dl ...

  9. python爬取链家网的房屋数据

    python爬取链家网的房屋数据 爬取内容 爬取源网站 爬取内容 爬取思路 爬取的数据 代码 获取房屋url 获取房屋具体信息 爬取内容 爬取源网站 北京二手房 https://bj.lianjia. ...

最新文章

  1. 数论概论(Joseph H.Silverman) 定理39.2 连分数相邻收敛项之差定理
  2. 【Paper】2015_Song_Consensus of Heterogeneous Agents with Linear Discrete Dynamics
  3. 硬核创客DIY遥控氦气球飞行器——会飞的鲨鱼的诞生的全过程
  4. 服务器自动关机怎么查,怎样设置WIN7系统的自动关机和查询系统上次的关机时间?...
  5. C++ (public, protected, private继承)
  6. 万物皆可文本时代来临?如何搞定NLP最强模型GPT
  7. Loadrunner11录制过程中报错:由于另一个程序正在运行中,此操作无法完成
  8. 数值补码和原码计算方法介绍
  9. 怎么把java安装到64位_怎么安装64位JAVA,大师来详解
  10. The vertically scrolling ScrollView should not contain another vertically scrolling widget (ListView
  11. PCL学习笔记3-KdTree
  12. 直播软件开发公司来告诉你什么是互动直播
  13. php如何连接数据库 甲骨文,Windows PHP/phpStudy 连接 甲骨文Oracle 数据库 oci8 – 让我们荡起双桨的博客 – CSDN博客...
  14. golang从channel读数据的各种情况
  15. 销售易和纷享销客的“生存经”
  16. 从JDBC到手撸极简版Mybaties(3)JDBC自动解析配置文件
  17. 35岁以上的Android开发,都去了哪儿?,Android开发面试宝典
  18. 用STM32定时器中断产生PWM控制步进电机
  19. 美国亚马逊最新要求ASTM F2641 电动滑板车、自平衡踏板车UL2272认证办理流程
  20. 功能机和Andorid 语言支持

热门文章

  1. Keras框架下的猫狗识别(一)
  2. 3D打印大件模型时,添加支撑的注意事项:支撑的地基一定要结实
  3. 机器学习算法(二十一):核密度估计 Kernel Density Estimation(KDE)
  4. NameError: name ‘F‘ is not defined(已解决)
  5. 后台删除数据一定要谨慎,再谨慎
  6. Matlab中图片保存的5种方法
  7. 一部章回小说从网上下载到离线阅读的整理过程
  8. 90后网民破3.6亿,四分之一月收入过万
  9. Qt之SVG转QPixmap并改变颜色
  10. uni-app上传视频