cnmapsearch——离公司最近的快餐店在哪
本文作者:王思雨 中南财经政法大学金融学院
本文编辑:郭泽源
技术总编:方一卓
Stata and Python 数据分析
由李春涛教授和团队成员司海涛、薛原编写的《Stata正则表达式及其在财务数据中的应用》终于和大家见面啦!爬虫俱乐部特此为大家准备了100本,即日起购买爬虫俱乐部课程,可赠送本书一本,先到先得!
购书链接:
爬虫俱乐部Stata基础课程、Stata进阶课程和Python课程可在小鹅通平台查看,欢迎大家多多支持订阅!如需了解详情,可以通过课程链接(https://appbqiqpzi66527.h5.xiaoeknow.com/homepage/10)或课程二维码进行访问哦~
01引言
在当下快节奏的生活中,你或许会发现,身边越来越多的打工人为了节省午饭的时间和成本,开始通过快餐店解决自己的一日三餐,一些距离公司较近的快餐店更是供不应求。但你可知道,在公司周围的多家快餐店中距离办公地址最近的是哪一家吗?下面就让我们用Stata随机选择20家上市公司,找到距离上市公司办公地址最近的快餐店。
02爬取上市公司的地址
首先,我们利用
cnstock
命令获取上市公司的代码,并且随机保留20家上市公司,将他们确定为本次研究的对象。clear all
cap mkdir E:/快餐店
cd E:/快餐店
mkf stkcd
cwf stkcd
cnstock all
sample 20,count
从搜集到的20家公司中选取康强电子为例,在新浪财经中打开该公司的公司简介,确定我们需要爬取的网页链接:(https://vip.stock.finance.sina.com.cn/corp/go.php/vCI_CorpInfo/stockid/002119.phtml
),通过观察网页内容以及网页源代码,我们发现“办公地址”信息存在于当前网页源代码中。
通过观察不同上市公司的办公地址所在的网页链接,我们发现网页中只有stk
参数发生了变化。接下来,我们利用forvalues
命令进行循环,得到20家上市公司完整的办公地址。
local N=_N
mkf address stkcd strL address
cwf default
forvalues i =1/`N' {
local stk=_frval(stkcd,stkcd,`i')
local stk: disp %06.0f `stk'
cap copy "http://vip.stock.finance.sina.com.cn/corp/go.php/vCI_CorpInfo/stockid/`stk'.phtml" temp.txt, replace
infix strL v 1-100000 using temp.txt, clear
replace v = ustrfrom(v, "gb18030", 1)
keep if index(v[_n-1], "办公地址")
replace v = ustrregexra(v, "<.*?>", "")
frame post address (`stk') (v[1])
}
cwf address
具体结果如下:
03爬取快餐店信息
首先,我们需要下载两个外部命令,cngcode和cnmapsearch,在之前的文章《定位神器——cngcode》和《让Stata完美牵手中国地图之cnmapsearch》中有详细介绍,今天我们就使用这两个命令来对“快餐店”进行搜索。
local url "https://stata-club-1257787903.cos.ap-chengdu."
net install cnmapsearch,from("`url'myqcloud.com/cnmapsearch/") replace
ssc install cngcode
接下来,我们通过利用cngcode
命令获得随机爬取的20家公司的经纬度信息,并将返回的经度和纬度变量命名为firm_lat和firm_lng。
local bdk 你的百度密钥
cngcode, baidukey(`bdk') fulladdress(address) lat(firm_lat) long(firm_lng)
其次,利用cnmapsearch
命令进行搜索,利用第一步中cngcode
返回的经纬度作为参数,以“快餐”作为关键词搜索爬取的20家上市公司办公地址周边1000米内的快餐店站信息。
cnmapsearch, baidukey(`bdk') latitude(firm_lat) longitude(firm_lng) keyword("快餐") radius(1000)
最后,对搜索结果进行整理,保留标签为“快餐”的观测值,并从中选取出距离办公地址最近的快餐店。删除搜集到的数据中电话号码、标签等变量,同时对快餐店的经纬度、名字以及具体地址等信息进行重命名。
keep if index(tag,"快餐")
sort stkcd distance
by stkcd: keep if _n==1
drop locid centerid
rename (loc_lat loc_lng name address) (快餐_lat 快餐_lng 快餐_name 快餐_address)
drop telephone tag distance
save "快餐.dta",replace
运行结果如下图所示:
通过观察搜集到的数据,我们发现上市公司办公地址周围的快餐店主要包括了特色小吃、面馆以及自选快餐等类型。并且最近的快餐店距离办公地址仅11米,这也就意味着对于在软通动力工作的打工人来说,几乎一出门就能吃上一顿温暖而又幸福的午餐了!
重磅福利!为了更好地服务各位同学的研究,爬虫俱乐部将在小鹅通平台上持续提供金融研究所需要的各类指标,包括上市公司十大股东、股价崩盘、投资效率、融资约束、企业避税、分析师跟踪、净资产收益率、资产回报率、国际四大审计、托宾Q值、第一大股东持股比例、账面市值比、沪深A股上市公司研究常用控制变量等一系列深加工数据,基于各交易所信息披露的数据利用Stata在实现数据实时更新的同时还将不断上线更多的数据指标。我们以最前沿的数据处理技术、最好的服务质量、最大的诚意望能助力大家的研究工作!相关数据链接,请大家访问:(https://appbqiqpzi66527.h5.xiaoeknow.com/homepage/10)或扫描二维码:
最后,我们为大家揭秘雪球网(https://xueqiu.com/)最新所展示的沪深证券和港股关注人数增长Top10。
对我们的推文累计打赏超过1000元,我们即可给您开具发票,发票类别为“咨询费”。用心做事,不负您的支持!
往期推文推荐 Python中的异常处理 Python交互式数据可视化——酷炫的Altair库 hk系列命令(3)—— hktrade hk系列命令(2)—— hkar hk系列命令(1)—— hkstock 超好用的字符串方法 基于Python的假设检验实现 Stata与MySQL交互--基础操作 Jupyter Notebook中的魔术命令《Stata正则表达式》由中国金融出版社出版发行 匿名函数lambda到底怎么用? Stata绘图系列—NBER Working paper仿图 Camelot:从PDF中提取表格数据 Stata之计算财务指标——融资约束 列表生成式|让你的代码更简洁 Stata绘图系列——玩转绘图通用选项之坐标轴 玩转地图的好帮手--pyecharts 爬虫俱乐部又又又输送了一位研究助理!!!【数据分析】一文教你玩转DataFrame关于我们
微信公众号“Stata and Python数据分析”分享实用的Stata、Python等软件的数据处理知识,欢迎转载、打赏。我们是由李春涛教授领导下的研究生及本科生组成的大数据处理和分析团队。
武汉字符串数据科技有限公司一直为广大用户提供数据采集和分析的服务工作,如果您有这方面的需求,请发邮件到statatraining@163.com,或者直接联系我们的数据中台总工程司海涛先生,电话:18203668525,wechat: super4ht。海涛先生曾长期在香港大学从事研究工作,现为知名985大学的博士生,爬虫俱乐部网络爬虫技术和正则表达式的课程负责人。
此外,欢迎大家踊跃投稿,介绍一些关于Stata和Python的数据处理和分析技巧。
投稿邮箱:statatraining@163.com投稿要求:1)必须原创,禁止抄袭;2)必须准确,详细,有例子,有截图;注意事项:1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。
2)邮件请注明投稿,邮件名称为“投稿+推文名称”。3)应广大读者要求,现开通有偿问答服务,如果大家遇到有关数据处理、分析等问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。