爬虫俱乐部在山东财经大学金融学院暑期Stata网课上的精彩答疑
本文作者:邱 沣,河南大学中原发展研究院
本文编辑:陈志林
技术总编:李婷婷
Stata&Python云端课程来啦!
好消息好消息,爬虫俱乐部开辟小鹅通战场!!爬虫俱乐部隆重推出小鹅通网络课程,将Stata基础课程,Stata进阶课程和Python课程都上传至小鹅通平台,欢迎大家多多支持订阅!报名课程即可加入答疑群,对报名有任何疑问欢迎在公众号后台留言哦。如需了解详情,可以通过课程链接(https://appbqiqpzi66527.h5.xiaoeknow.com/homepage/10)或课程二维码进行访问哦~
接下来这位同学写的循环同样存在问题,以下是他所写的程序:
他的问题同样是循环中的local使用错误,首先使用forecah循环是为了让此路径下的dta文件一个一个合并起来,所以定义了循环算子f,将local s 中的文件一个个拿出来,所以合并时应使用 f 而不是 s 。另外合并时不需要再另加.dta表示文件格式了,循环算子f本身就已带有文件格式,重复定义会报错。简单改写一下即可
merge 1:1 id year using "`f'"
局部宏扩展函数这里也是新手容易犯错的地方,很多人并没有完全理解它的含义,所以就会导致使用出错,比如下图这位同学:
首先,局部宏扩展函数dir的基本语法为:
local list :dir ["]dirname["] { dirs | files |other}["]pattern["] [, nofail respectcase]
其中,dirname为文件路径名称;dirs| files | other分别代表文件夹、常规文件、非常规文件;pattern为文件或文件夹样式;nofail表示若当前目录下含有太多文件名,则返回适合mname的文件名,而不报错;respectcase表示保留原有文件(夹)名称的大小写形式,否则英文字母默认输出为小写形式。dir "."表示遍历当前路径
在定义宏扩展函数时,需要注意 dir "." files其中的引号一定要加上,. 指当前路径,不带引号无法识别。正确用法如下:
local files: dir "." files "`stk'_*.dta"
更多详情可参考我们团队之前的推文《巧用局部宏扩展函数dir》
爬虫拿不到数据这类问题在Stata的学习过程中也很容易遇到,现在大多数网站都有各种各样的反爬机制,如果你短时间内大量爬取了网站信息,网站就会识别到你的异常访问,那么爬虫中就容易出现类似的错误,如下图所示。
解决办法:可以一段一段的爬,比如5家公司,5家公司,每个公司20页公告这样间断地爬,并且加上sleep选项。对于新浪财经这种比较友好的网站,可以暂停一会再去访问就好了。但一些反爬比较严重的网站,就需要通过购买ip,代理等更高阶的方法了。合并数据后出现空行
这位同学在使用cnstock爬取上市公司公告时,后续合并数据前,未删除 cnstock.dta,导致一起被合并到其中,数据中出现空行。
解决方法也很简单,合并前删除 cnstock.dta即可或者在最初就删除掉。
解决办法1:合并前删除 cnstock.dta即可;
!del cnstock.dta
解决办法2:在cnstock获取到公司列表后就删掉该dta文件;
cnstock all
erase cnstock.dta
我们的课程为帮助同学更好地学习,在周一到周五安排了课程老师为同学们答疑解惑,届时,参加其他网课的学生也可以在所在的答疑群向授课老师咨询。各个课程老师的答疑时间以及答疑主要内容如下:
周一 8:00pm-9:30pm | 李春涛(研究选题、数据清洗、数据合并、循环) |
周二 8:00pm-9:30pm | 薛 原(网络爬虫、正则表达式、python) |
周三 8:00pm-9:30pm | 司海涛 (正则表达式、网络爬虫、python) |
周四 8:00pm-9:30pm | 闫续文(结果输出系列、事件研究、数据清洗) |
周五 8:00pm-9:30pm | 张计宝(文本分析、网络爬虫、正则表达式、python) |
对我们的推文累计打赏超过1000元,我们即可给您开具发票,发票类别为“咨询费”。用心做事,不负您的支持!
往期推文推荐
JupyterNotebook——如何更换默认文档目录?
Stata绘图系列——玩转绘图通用选项(一)
出人意料!这所大学的A级学科总数竟超越清华北大!
Stata数据读入——打开方式不同?
数据类型——Dict、Set与Frozenset简析
Stata小贴士之外部命令安装路径
有一种夏天叫做宫崎骏的夏天
换装术|多个Excel文件如何一键转为dta格式
【基础篇】Python可变对象与不可变对象
Stata绘图系列——细节掌控绘图区域!
4月A股的收官战之概念板块哪家强?解放双手!你必须要会的两个命令—inlist & inlist2
【基础篇】字符串之判断方法
Stata绘图系列——让你的直方图随心所欲
【爬虫篇】湖人无缘季后赛,球迷如何回应
客官,要来份四象限图吗?
Python实现简繁体转换
Stata与Python交互方法及数据传递
“青铜”爬“王者”
留下想要的变量,你会几种方法?
关于我们
微信公众号“Stata and Python数据分析”分享实用的Stata、Python等软件的数据处理知识,欢迎转载、打赏。我们是由李春涛教授领导下的研究生及本科生组成的大数据处理和分析团队。
武汉字符串数据科技有限公司一直为广大用户提供数据采集和分析的服务工作,如果您有这方面的需求,请发邮件到statatraining@163.com,或者直接联系我们的数据中台总工程司海涛先生,电话:18203668525,wechat: super4ht。海涛先生曾长期在香港大学从事研究工作,现为知名985大学的博士生,爬虫俱乐部网络爬虫技术和正则表达式的课程负责人。
此外,欢迎大家踊跃投稿,介绍一些关于Stata和Python的数据处理和分析技巧。
投稿邮箱:statatraining@163.com投稿要求:
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。
2)邮件请注明投稿,邮件名称为“投稿+推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到有关数据处理、分析等问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。