有没有人知道XPath表达式允许我提取baidu.com返回的所有搜索结果?
例如,在R中,我通常会做这样的事情:
# load libraries
library(RCurl)
library(XML)
# get webpage
doc <- getURL("http://www.baidu.com/s?rn=100&bs=chivas+regal&f=8&wd=chivas+regal")
# html structure
html <- htmlTreeParse(doc, useInternalNodes = TRUE, error=function(...){})
# use xpath expression to get links
nodes <- getNodeSet(html, "//a[@href]")
然而,这只有大约10个链接,当我应该有大约100个。所以我认为这意味着有一些关于baidu html结构的东西,我不清楚。
非常感谢你的时间。
答案 0 :(得分:2)
如果Xpath不是绝对要求,请尝试基于正则表达式的方法。以下假设所有链接都以http://开头,并且是双引号。它使用strapply
来匹配指示的正则表达式并提取出后引用,即括号内的部分。
URL <- "http://www.baidu.com/s?rn=100&bs=chivas+regal&f=8&wd=chivas+regal"
Lines <- readLines(URL)
library(gsubfn)
links <- strapply(Lines, '"(http://[^"]*)"', simplify = c)