2016-04-19 10 views
1

のURLの正しいCSSセレクタを識別します、私は次のスクリプトを得ることができるヘルパーにウェブサイトと感謝からデータを取得しようとしていますRスクリプト

require(httr) 
require(rvest) 
     res <- httr::POST(url = "http://apps.kew.org/wcsp/advsearch.do", 
        body = list(page = "advancedSearch", 
           AttachmentExist = "", 
           family = "", 
           placeOfPub = "", 
           genus =  "Arctodupontia", 
           yearPublished = "", 
           species ="scleroclada", 
           author = "", 
           infraRank = "", 
           infraEpithet = "", 
           selectedLevel = "cont"), 
        encode = "form") 
    pg <- content(res, as="parsed") 
    lnks <- html_attr(html_node(pg,"td"), "href") 

しかし、いくつかのケースでは上記の例のように、何らかの理由でhtml_attrがhtml_nodeで検出されたノード内のurls( "href")を見つけられないため、正しいリンクを取得しません。これまでは、 "td"、 "a.onwardnav"、 ".plantname"などの異なるCSSセレクタを試しましたが、html_attrが正しく処理できるオブジェクトは生成されませんでした。 何かヒント?

答えて

0

あなたは本当にあなたが期待していた答えを得ることに近いです。あなたが希望するページのオフリンクを引くしたい場合は、:

lnks <- html_attr(html_nodes(pg,"a"), "href") 

は「HREF」属性を持つ「」タグにあるリンクのすべてのリストを返します。コマンドはノードではなくhtml_nodesであることに注意してください。複数の "a"タグがあり、したがって複数のタグがあります。二行目は1がその行を取得するために解析することができたテーブルから9行のリストを返します

html_table(pg, fill=TRUE) 
#or this 
html_nodes(pg,"tr") 


あなたは、その後の体内でのテーブルからの情報を探している場合は、これを試して名前(「th」)および/または行値(「td」)を含む。
これが役に立ちます。

+0

ありがとうございます! –

関連する問題