教你用Stata爬取全国疫情风险地区数据,原来这么简单!
本文作者:倪加鑫,安徽财经大学
本文编辑:智淼
技术总编:方一卓
Stata&Python云端课程来啦!
好消息好消息,爬虫俱乐部开辟小鹅通战场!!爬虫俱乐部隆重推出小鹅通网络课程,将Stata基础课程,Stata进阶课程和Python课程都上传至小鹅通平台,欢迎大家多多支持订阅!报名课程即可加入答疑群,对报名有任何疑问欢迎在公众号后台留言哦。如需了解详情,可以通过课程链接(https://appbqiqpzi66527.h5.xiaoeknow.com/homepage/10)或课程二维码进行访问哦~
引言
马上到了9月1号开学季了,我们将要迎来新学期的校园生活,越来越多的学生开始准备踏上返校的旅途,多个高校陆续开始统计学生所居住地风险规划,以便确定学生是否能够正常返校。现在全国疫情总体情况如何?为便于大家及时获取全国、全省及目前所在地疫情形势变化,丁香园综合中国国家卫生健康委员会、中国疾病预防控制中心,以及全国大部分省市医疗卫生机构的权威发布渠道,建立全国疫情风险地区汇总页面。为此,小编这次就带领大家爬取全国疫情风险区域划分数据供大家学习交流~01
首先,我们进入此次爬取的网站,丁香园全国疫情风险地区汇总(https://ncov.dxy.cn/ncovh5/view/pneumonia_risks?from=dxy&link=&share=&source=),但这个网页返回的源代码与和页面上看到的不一样,我们需要进入谷歌的开发者模式,寻找我们所需要数据的真实网页链接。如下图所示的链接,这就是储存全国疫情风险地区汇总数据的url了。为了后续使用方便,单击右键把url link复制下来(https://file1.dxycdn.com/2021/0202/196/1680100273140422643-135.json?t=27689095)。 1clear all
2set maxvar 50000 //因为后续拆分变量时候,变量较多,所以加上该设置,为了程序能顺利运行
3copy "https://file1.dxycdn.com/2021/0202/196/1680100273140422643-135.json?t=27689095" temp.txt,replace
4set obs 1
5gen v = fileread("temp.txt")
6split v,p(`"},{"')
7drop v
8sxpose,clear
9gen dangerLevel = ustrregexs(1) if ustrregexm(_var1, `"dangerLevel":(.+?),"') //风险等级
10gen areaName = ustrregexs(1) if ustrregexm(_var1, `"areaName":"(.+?)","') //风险区域名称
11gen cityName = ustrregexs(1) if ustrregexm(_var1, `"cityName":"(.+?)""') //所属城市
12gen provinceName = ustrregexs(1) if ustrregexm(_var1, `"provinceName":"(.+?)""') //所在省份
13*填补省份空缺值
14replace provinceName = "." if provinceName == ""
15 forvalues i = `=_N'(-1)2 {
16 if !index(provinceName[`i'], ".") & index(provinceName[`i'-1], ".") {
17 replace provinceName = provinceName[`i'] in `=`i' - 1'
18 }
19
20 }
21
22*高风险(1)、低风险地区(2)
23replace dangerLevel = "." if dangerLevel == ""
24 forvalues i = 1(1)`=_N-1' {
25 disp `i'
26 disp `i' + 1
27 if !index(dangerLevel[`i'], ".") & index(dangerLevel[`i'+1], ".") {
28 replace dangerLevel = dangerLevel[`i'] in `=`i' + 1'
29 }
30
31 }
32gen dangerLevel1 = "高风险地区" if dangerLevel == "1"
33replace dangerLevel1 = "低风险地区" if dangerLevel == "2"
34drop _var1
35compress
36save 疫情风险区域,replace
02
最后,爬取到全国风险区域规划数据,如下图所示。
END
重磅福利!为了更好地服务各位同学的研究,爬虫俱乐部将在小鹅通平台上持续提供金融研究所需要的各类指标,包括上市公司十大股东、股价崩盘、投资效率、融资约束、企业避税、分析师跟踪、净资产收益率、资产回报率、国际四大审计、托宾Q值、第一大股东持股比例、账面市值比、沪深A股上市公司研究常用控制变量等一系列深加工数据,基于各交易所信息披露的数据利用Stata在实现数据实时更新的同时还将不断上线更多的数据指标。我们以最前沿的数据处理技术、最好的服务质量、最大的诚意望能助力大家的研究工作!相关数据链接,请大家访问:(https://appbqiqpzi66527.h5.xiaoeknow.com/homepage/10)或扫描二维码:最后,我们为大家揭秘雪球网(https://xueqiu.com/)最新所展示的沪深证券和港股关注人数增长Top10。
对我们的推文累计打赏超过1000元,我们即可给您开具发票,发票类别为“咨询费”。用心做事,不负您的支持!
往期推文推荐【数据结构】集合的使用方法 Stata爬取七普人口数据
浅析Python的序列化与反序列化
爬虫俱乐部的精彩答疑--爬虫为何失败?
利用Stata批量制作学生证 【数据分析-入门】科学计算基本库—Numpy的简单使用 Stata绘图系列——玩转绘图通用选项之图例 【基础篇】数据类型介绍——list、tuple和range对象覆盖北交所的“cnstock”复工了!
高考热度大数据爬虫——谁才是院校顶流
跨框架数据操作
河南大学经济学院2022年Stata数据处理与爬虫技术开班仪式顺利召开爬虫俱乐部的精彩答疑——local function
爬虫俱乐部精彩答疑——Python中的三种文件读取方法爬虫俱乐部的精彩答疑--认真仔细方能写出好程序爬虫俱乐部Python精彩答疑——更换Jupyter Notebook浏览器及dropna()参数详解
爬虫俱乐部的精彩答疑--如何打开Excel中扩展名与文件源码不符的文件
解锁《梦华录》之东京繁华生活
爬虫俱乐部的精彩答疑——DOS命令
爬虫俱乐部的精彩答疑之换行问题
关于我们
微信公众号“Stata and Python数据分析”分享实用的Stata、Python等软件的数据处理知识,欢迎转载、打赏。我们是由李春涛教授领导下的研究生及本科生组成的大数据处理和分析团队。
武汉字符串数据科技有限公司一直为广大用户提供数据采集和分析的服务工作,如果您有这方面的需求,请发邮件到statatraining@163.com,或者直接联系我们的数据中台总工程司海涛先生,电话:18203668525,wechat: super4ht。海涛先生曾长期在香港大学从事研究工作,现为知名985大学的博士生,爬虫俱乐部网络爬虫技术和正则表达式的课程负责人。
此外,欢迎大家踊跃投稿,介绍一些关于Stata和Python的数据处理和分析技巧。
投稿邮箱:statatraining@163.com投稿要求:
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。
2)邮件请注明投稿,邮件名称为“投稿+推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到有关数据处理、分析等问题,可