有没有人知道能让我提取baidu.com返回的所有搜索结果的XPath表达式?
例如,在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个。所以我认为这意味着关于百度html的结构有一些我不清楚的地方。
非常感谢您的宝贵时间。
发布于 2010-12-14 04:19:16
如果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)https://stackoverflow.com/questions/4430763
复制相似问题