【发布时间】:2013-11-26 00:13:31
【问题描述】:
我试图在this page 中获取选择器列表:
$("#Lastname"),$(".intro"),....
这是我使用xpathSApply的尝试:
library(XML)
library(RCurl)
a <- getURL('http://www.w3schools.com/jquery/trysel.asp')
doc <- htmlParse(a)
xpathSApply(doc,'//*[@id="selectorOptions"]') ## I can't get the right xpath
我也尝试过,但没有成功:
xpathSApply(doc,'//*[@id="selectorOptions"]/div[i]')
编辑我添加 python 标签,因为我也接受 python 解决方案。
【问题讨论】:
-
Javascript 正在此页面上运行以创建您正在寻找的内容。例如
var w3SelDescriptions = []; w3SelDescriptions.push('The element with id="Lastname"');您需要从浏览器或类似的东西获取页面发布 javascript。 -
@jdharrison 恐怕我不明白你的意思。你的意思是选择器是由这个调用创建的:
onload="w3jQuerySelectorLoad()?. -
选择器列表由一段 javascript 代码创建
-
xpathSApply(doc,'//*/script')[[6]]可能是创建您正在寻找的内容的 javascript 块。 -
在本例中,正如 jdharrison 所指出的,您可以通过查找相关脚本并进行一些解析来获取选项列表,因为所有选项都在那里。不过,在更一般的情况下,您需要使用将执行 JS 并进行所需 DOM 更改的客户端访问页面。我不认为有一个简单的方法可以用 R 来做到这一点。虽然我之前通过 Python 使用过 Selenium(我认为 Selenium 启动了一个你可以访问的服务器通过 R)。
标签: r curl xpath web-scraping