Stata爬虫-正则表达式

全文阅读:https://www.lianxh.cn/news/8c6be3c47d2eb.html

目录

连享会 Stata 爬虫和文本分析系列推文:

0. 背景 -

A. 爬虫之工具:R,Stata 和 Python

统计计量软件众多,例如 RStata 和 python 等,每个软件都有自己的优点和缺点。

就爬虫而言,python 和 R 软件的功能已较为成熟,拥有一系列实现各类功能的包 (package)。比如 R 中的 rvest 包在爬取静态网站数据方面功能很强大,此外,还有 RCurl 和 XML 包等。

相比而言,Stata 虽然在格式化数据处理和计量分析方面非常高效,但在爬虫方面可能还处于 爬行 阶段。曾经有人调侃道:利用 Stata 软件来爬虫的都是比较文艺的 ^-^。

事实并非如此。自 Stata 发布 14.0 版本以来,其字符处理功能已大幅改善,再配合 copy 和 curl 等命令,Stata 的爬虫能力日渐强大。curl (https://curl.haxx.se/) 是一个在命令行下工作的文件传输工具,支持文件的上传和下载,可发送各种 http 请求 给网站,进而抓取网站内容保存到本地。

B. 本文要干的事儿

本文将利用实例来对比 R,Stata 和 python 在爬虫方面的功能。「 100 行代码爬取全国所有必胜客餐厅信息」 一文中,作者利用 python 爬取了全国所有 必胜客餐厅信息 ,包括:餐厅名,地址和电话号码。借鉴该文的分析思路,本文利用 Stata 和 R 软件对其结果进行重现,爬取全国必胜客餐厅相关信息,以此说明使用 Stata 和 R 爬取数据的步骤和流程。

爬虫的第一步是分析网址,找出其中的规律,以便写循环实现自动爬取;接下来就是把网页信息复制 ( copy ) 下来,保存为 .txt 或其他便于读入统计或计量分析软件的数据文件。

copy 命令是 Stata 中常用的一个爬虫命令,但是在本例中却无法使用。分析必胜客官网网址可以发现,当切换城市时,网址不会随之改变,这时就不能构造有效的地址对其进行循环爬取。为此,我们使用外部命令 curl 命令来实现。

数据的爬取主要包括两部分:第一,从网站上将包含数据信息的源代码下载到本地。这里就涉及到需要对爬取的网站进行详细分析,对于这个网站更加详细的分析,大家可以看之前作者写的推文;第二,利用字符函数或正则表达式对下载的文本文件进行处理,这部分可以详细看之前的一个推文(https://blog.csdn.net/arlionn/article/details/85156842)。

本文分如下部分进行说明:第一,对网页结构进行分析;第二,讲解正则表达式中的零宽断言;第三,对必胜客餐厅分布信息进行抓取;第四,对文章内容进行总结;第五,参考资料说明。

全文阅读:https://www.lianxh.cn/news/8c6be3c47d2eb.html

上一篇:MySQL数据库SQL修改数据规范


下一篇:二叉堆的应用