如何从stackexchange主页抓取"表格式"数据?(在R中)

Tal*_*ili 3 r web-scraping

我想刮掉一个新的stackexchange网站的主页:https://webapps.stackexchange.com/ (只有一次,只有几个页面,没有什么应该打扰服务器).如果我想从stackoverflow中获取它,我知道有一个数据库转储,但是对于新的stackexchange,它们还不存在.

这就是我想要做的.

第1步:选择URL

URL <- "https://webapps.stackexchange.com/"
Run Code Online (Sandbox Code Playgroud)

第2步:阅读表格

readHTMLTable(URL)  # oops, doesn't work - gives NULL
Run Code Online (Sandbox Code Playgroud)

第2步:这一次,让我们尝试用XML

htmlTreeParse(URL) # o.k, this reads the data - but it is all in <div> - now what?
Run Code Online (Sandbox Code Playgroud)

所以我能够阅读页面,但现在结构是div.它现在如何用于创建与readHTMLTable相同的东西?

Sha*_*ane 8

你可以做到这一点overflowr(与StackExchange API).只需使用get.questions()函数并提供站点前缀即可.它不是CRAN,因为它不完整,但您可以下载并构建它.

library(overflowr)
questions <- get.questions(50)
Run Code Online (Sandbox Code Playgroud)

对于统计网站,最近的前5个问题:

questions <- get.questions(top.n=5, site="stats.stackexchange")
Run Code Online (Sandbox Code Playgroud)

顺便说一句,很高兴能够有更多的人参与这个项目,因为我没有时间花在这个项目上. Stats.Exchange的三位主持人目前正在研究它.