0

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

网络抓取该 URL 底部下拉列表中所有可用语言的主要维基百科页面:http: //www.wikipedia.org/

为此,我需要选择一种语言,例如英语,然后在新网址左侧的“主页”链接中“单击”(http://en.wikipedia.org/wiki/Special:Search ?search=&go=Go)。

在这一步之后,我会用英文抓取维基百科主页的 html 源代码。

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

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

4

2 回答 2

3

可以使用带有selenium包的 python 来执行此操作。这里有一些有用的例子。我发现安装 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 )
于 2012-03-11T21:45:49.427 回答
2

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

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

于 2012-03-12T04:22:28.720 回答