XPath выражение для извлечения веб-ссылок из китайского поиска (baidu.com) - PullRequest
1 голос
/ 13 декабря 2010

Кто-нибудь знает выражение 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 есть что-то, что мне не понятно.заранее за ваше время.

1 Ответ

2 голосов
/ 13 декабря 2010

Если 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...