2010-12-13 5 views
1

baidu.comから返されたすべての検索結果を抽出できるXPath式を知っている人はいますか?中国語の検索(baidu.com)からWebリンクを抽出するXPath式

# 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]") 

しかし、これが唯一だから私は、これはについて何かがあることを意味だと思う100の周り私が持っている必要があり、約10のリンクを取得します。たとえば

は、Rで、私は通常、このようなものにするだろう私には分かりませんbaidu html構造。

お時間をいただき、ありがとうございます。

+0

[Tidy](http://valet.htmlhelp.com/tidy/)を使用し、XPath式に名前空間バインディングを追加すると、期待どおりに動作します。エラーは、HTMLパーサまたはXPathエンジンにある可能性があります。それに応じて再タグ付けする。 –

答えて

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) 
+0

+1優秀、私はこれを利用することができます! –

関連する問題