如何抓取一个网站填写表格并“点击”与R的链接?

时间:2012-03-11 20:56:49

标签: python r web-scraping rcurl

我想网页抓取我无法访问的java脚本页面的html源代码,而不是在下拉列表中选择一个选项,然后在“点击”链接之后。尽管没有在java中,一个简单的例子可以是这样的:

网页截取此网址底部下拉列表中提供的所有语言的主维基百科页面:http://www.wikipedia.org/

为此,我需要选择一种语言,例如英语,然后在新网址左侧的“主页”链接中“点击”(http://en.wikipedia.org/wiki/ ?特殊:搜索搜索=&安培;去=去)。

完成此步骤后,我将用英语搜索维基百科主页的html源代码。

有没有办法用R做到这一点?我已经尝试过RCurl和XML包,但它与javascript页面不兼容。

如果R不可能,有人能用python告诉我如何做到这一点吗?

2 个答案:

答案 0 :(得分:3)

使用selenium包使用python可以做到这一点。有一些有用的例子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 )

答案 1 :(得分:2)

查看RCurl和XML包,将表单信息发布到网站,然后再处理数据。 RCurl非常酷,但是你可能会遇到HTML解析的问题,因为如果它不符合标准,那么XML包可能不想玩得很好。

如果您对学习Python感兴趣,那么上面的Celenius示例以及beautifulSoup将是您所需要的。