今天我们要讲怎么样用R写一个小的爬虫,来爬取网页中的表格。这里的网页指html页面。稍微百度一下大家就可以知道,html是一种高度结构化的文本标记语言。html表格所用的标签是
。所以我们的思路大概就是,找到html页面里面的标签
下面我们用一个例子来说明,https://www.basketball-reference.com/boxscores/201706010GSW.html,这个链接是2017 NBA总决赛第一场的数据,里面有好几个表格,我们要爬取的是这个,
当然你愿意的话也可以爬取其他表格,这个只是举个例子。
这种情况下有个问题要注意,你需要知道你爬取的是哪个表格,方法我们之后说。
代码:
#再如需要的package,做这个爬虫我们只需要这一个package就够了library(rvest)
#将目标URL赋予url变量url % html() %>% html_nodes(xpath = '//*[@id="box_gsw_basic"]') %>% html_table()
大家注意上面的「//[@id=”box_gsw_basic”]」,这个东西是什么?这个东西就是我刚才说的,我们需要知道我们要爬取的是哪个表格,需要通过身份标识来确定我们要爬取的表格,「//[@id=”box_gsw_basic”]」就是我们要爬取表格的身份标识。这是一个叫XPath的路径索引语言,是题外话了,以后可以讲。那么怎么样可以获取每个表格的身份标识呢,这就要感谢Chrome了。
打开刚才的网页,找到想要爬取的表格,随便把鼠标放在表格中某个位置,然后点击右键

点击弹出菜单的最后一项,inspect,

本文介绍了如何利用R语言的rvest包来抓取HTML网页中的表格,以2017 NBA总决赛第一场比赛数据为例,通过查找表格的身份标识XPath来定位目标表格,并将其转换为dataframe进行数据分析。在实际操作中,需先使用Chrome开发者工具获取表格的id,然后编写代码爬取数据并清洗,最后展示爬取到的表格内容。
最低0.47元/天 解锁文章
768

被折叠的 条评论
为什么被折叠?



