2012-03-11 60 views
0

我想網絡刮取我無法訪問的java腳本頁面的html源代碼,而無需在下拉列表中選擇一個選項,然後點擊鏈接。不是一直在java中雖然,一個簡單的例子可以這樣:如何刮取網站填寫表單並點擊與R鏈接?

網絡湊在所有語言中的主要維基百科頁面提供的下拉列表在此網址的底部:http://www.wikipedia.org/

這樣做,我需要選擇一種語言,例如英語,然後點擊新網址左側的「主頁」鏈接(http://en.wikipedia.org/wiki/Special:Search?search= & go = Go)。

完成這一步之後,我會用英文抓取wikipedia主頁的html源代碼。

有沒有什麼辦法可以用R來做到這一點?我已經嘗試過RCurl和XML包,但它在JavaScript頁面上效果不佳。

如果它不可能與R,有誰能告訴我如何用python做到這一點?

+1

我不知道爲什麼有人降級的問題沒有評論。其實我是R編程中的一名成員,在celenius回答後,我開始學習Python。如果問題不清楚或者沒有顯示任何研究成果,我將不勝感激。 – 2012-04-05 02:16:13

回答

2

可以使用Python與selenium包進行此操作。有一些有用的例子here。我發現安裝Firebug很有幫助,以便我可以識別頁面上的元素。還有一個帶有交互式窗口的Selenium Firefox插件,也可以提供幫助。

import sys 
import selenium 
from selenium import webdriver 
from selenium.webdriver.common.keys import Keys 

driver = webdriver.Firefox() 
driver.get("http://website.aspx")  

elem = driver.find_element_by_id("ctl00_ctl00") 
elem.send_keys('15') 
elem.send_keys(Keys.RETURN) 
+0

celenius,實際上我不使用python。你是否知道初學者的重要參考資料? – 2012-03-11 22:46:27

1

看看的RCurl和XML包的形式發佈信息到網站,然後事後處理數據。 RCurl非常酷,但是你可能會遇到HTML解析的問題,因爲如果它不符合標準,XML包可能不會很好。

如果你有興趣學習Python,但是Celenius的上面的例子加上beautifulSoup會是你需要的。