搜狗·疫情数据爬取(Python)

 

上周已经分享过搜狗·疫情数据爬取(R语言),这次分享一下搜狗·疫情数据爬取(Python)

不说废话,直接上代码。有什么问题,可以在留言区讨论。

from urllib import request
from lxml import etree
import re
import pandas as pd
import json
​
url="http://sa.sogou.com/new-weball/page/sgs/epidemic?type_page=WEB"
response = request.urlopen(url)      #请求
​
html = response.read()#获取
html = html.decode("utf-8")#解码
​
xml = etree.HTML(html)
datas = xml.xpath('//html/body/script[1]/text()')
​
datas=re.sub('window.type_page = \"WEB\"\n      window.__INITIAL_STATE__ = ',"",datas[0])
​
area=json_data["data"]["area"]
​
citytempdate = []
provincetempdate = []
for i in area:
    provinceShortName = i["provinceShortName"]
    confirmedCount = i["confirmedCount"]
    curedCount = i["curedCount"]
    deadCount = i["deadCount"]
    provincetempdate.append([provinceShortName,confirmedCount,curedCount,deadCount])
    for j in i["cities"]:
        cityName = j["cityName"]
        confirmedCount=j["confirmedCount"]
        curedCount=j["curedCount"]
        deadCount=j["deadCount"]
        citytempdate.append([provinceShortName,cityName,confirmedCount,curedCount,deadCount])
  
dt_city = pd.DataFrame(citytempdate,columns=["PROVINCESHORTNAME","CITYNAME","CONFIRMEDCOUNT","CUREDCOUNT","DEADCOUNT"])
dt_province = pd.DataFrame(provincetempdate,columns=["PROVINCESHORTNAME","CONFIRMEDCOUNT","CUREDCOUNT","DEADCOUNT"])
​
​

各城市(部分)数据如下:

 PROVINCESHORTNAMECITYNAMECONFIRMEDCOUNTCUREDCOUNTDEADCOUNT
0湖北武汉4115235071309
1湖北孝感327944970
2湖北黄冈283183978
3湖北荆州150130537
4湖北鄂州127424435
5湖北随州126714024
6湖北襄阳115515120

各省分总体(部分)数据如下:

 PROVINCESHORTNAMECONFIRMEDCOUNTCUREDCOUNTDEADCOUNT
0湖北5818266931696
1广东13225244
2河南124650916
3浙江11715070
4湖南10064983
5安徽9732806
6江西9302751
7江苏6262580
8重庆5522115
9山东5411912

转载请注明:

微信公众号:数据志

简书:数据志

博客园:https://www.cnblogs.com/wheng/

CSDN:https://blog.csdn.net/wzgl__wh

GitHub(数据、代码):https://github.com/hellowangheng/datazhi/tree/master/2019-nCoV

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值