2010-08-20 47 views
3

我想刮一個新的stackexchange網站的主頁:https://webapps.stackexchange.com/(只有一次,只有幾頁,沒有什麼應該打擾服務器)。如果我想從stackoverflow中獲得它,我知道有一個數據庫轉儲,但是對於新的stackexchange,它們還不存在。如何從stackexchange首頁上刮掉「表格」數據? (在R)

這是我想要做的。

第1步:選擇URL

URL <- "https://webapps.stackexchange.com/" 

第2步:讀取表

readHTMLTable(URL) # oops, doesn't work - gives NULL 

第2步:這時候,讓我們嘗試將其與XML

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

所以我能夠讀取頁面,但現在結構是在div中。它現在怎麼可以用來創建與readHTMLTable相同的東西?

+0

重複? http://stackoverflow.com/questions/1395528/scraping-html-tables-into-r-data-frames-using-the-xml-package – Shane 2010-08-20 17:32:56

+0

另請參閱http://stackoverflow.com/questions/2998655/how- to-isolate-a-one-element-from-a-scraped-web-page-in-r/ – Shane 2010-08-20 17:55:43

回答

8

您可以使用the overflowr package(使用StackExchange API)執行此操作。只需使用get.questions()函數並提供站點前綴即可。它不在CRAN上,因爲它沒有完成,但你可以下載並構建它。

library(overflowr) 
questions <- get.questions(50) 

對於網站統計,前5個最近的問題:

questions <- get.questions(top.n=5, site="stats.stackexchange") 

順便說一下,高興地包含更多的人在這個項目上工作,因爲我沒有任何更多的時間在這上面花。 Three of the moderators from Stats.Exchange are currently working on it

+0

這看起來很棒Shane !!有沒有已經構建的windows版本下載鏈接的機會? – 2010-08-20 18:12:16

+0

不,對不起。你將不得不從svn中檢查出它並構建它。在提供下載版本之前,我沒有看到太多意見。核心基礎設施就在那裏,但你不能做基本的事情(比如拉應答)。 – Shane 2010-08-20 18:16:03

+0

o.k,謝謝謝恩 - 我會繼續這樣做... – 2010-08-20 18:24:48

0

你在寫什麼?我寫了一個應用程序,解析出一個網絡刮(link)。我會更樂意分享這個邏輯。

+1

[R](http://www.r-project.org/)(http://www.r -project.org/) – 2010-08-20 17:33:50