我想网页抓取我无法访问的java脚本页面的html源代码,而不是在下拉列表中选择一个选项,然后在“点击”链接之后。尽管没有在java中,一个简单的例子可以是这样的:
网页截取此网址底部下拉列表中提供的所有语言的主维基百科页面:http://www.wikipedia.org/
为此,我需要选择一种语言,例如英语,然后在新网址左侧的“主页”链接中“点击”(http://en.wikipedia.org/wiki/ ?特殊:搜索搜索=&安培;去=去)。
完成此步骤后,我将用英语搜索维基百科主页的html源代码。
有没有办法用R做到这一点?我已经尝试过RCurl和XML包,但它与javascript页面不兼容。
如果R不可能,有人能用python告诉我如何做到这一点吗?
答案 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将是您所需要的。