2016-10-19 5 views
1

を持つノードを見つけることができない私は、私が使用して取得するXPathは要素を検査enter image description here 以下rvestは、これは私が <a href="http://www.cpppc.org:8082/efmisweb/ppp/projectLivrary/toPPPList.do" rel="nofollow">ppp projects</a></p> <p>をscapreウェブサイトでのXPath

のようなノードを選択するために、XPathを使用するには、//」であります*

「/李 1/divの 2 /スパン 2 /スパン[ID = "pppListUl" @]マイscrpitsは以下のようなものです:

a <- html("http://www.cpppc.org:8082/efmisweb/ppp/projectLivrary/toPPPList.do") 
b <- html_nodes(a, xpath = '//*[@id="pppListUl"]/li[1]/div[2]/span[2]/span') 
b 

その後、私は

{xml_nodeset (0)} 

は、それから私は、ページのソースを確認した結果を得ました、私も、私が選択したプロジェクトについては何も見つかりませんでした。

なぜ私はページソースでそれを見つけることができないのだろうと思っていたのですが、どのようにしてノードをrvestで得ることができますか?

答えて

2

コンテンツのXHR要求を行います。

library(httr) 

POST('http://www.cpppc.org:8082/efmisweb/ppp/projectLivrary/getPPPList.do?tokenid=null', 
    encode="form", 
    body=list(queryPage=1, 
       distStr="", 
       induStr="", 
       investStr="", 
       projName="", 
       sortby="", 
       orderby="", 
       stageArr="")) -> res 

content(res, as="text") %>% 
    jsonlite::fromJSON(flatten=TRUE) %>% 
    dplyr::glimpse() 

(StackOverflowのは、それがスパムだと思って、私はそれの出力を投稿せるのに十分な高度ではありません):ちょうどそのデータ(それはかなりきれいだ)で動作します。

フィールドtotalCount,list(実際のデータがあります)、currentPageおよびtotalPageの4つの要素リストです。

あなたは全体のリスト/データベースを取得するためにページを反復処理するqueryPageフォーム変数を変更することができますようにそれは、のようなものになります。どうもありがとうございます

library(httr) 
library(purrr) 
library(dplyr) 

get_page <- function(page_num=1, .pb=NULL) { 

    if (!is.null(.pb)) pb$tick()$print() 

    POST('http://www.cpppc.org:8082/efmisweb/ppp/projectLivrary/getPPPList.do?tokenid=null', 
     encode="form", 
     body=list(queryPage=page_num, 
       distStr="", 
       induStr="", 
       investStr="", 
       projName="", 
       sortby="", 
       orderby="", 
       stageArr="")) -> res 

    content(res, as="text") %>% 
    jsonlite::fromJSON(flatten=TRUE) -> dat 

    dat$list 

} 

n <- 5 # change this to the value in `totalPage` 

pb <- progress_estimated(n) 
df <- map_df(1:n, get_page, pb) 
+0

を!それはうまくいく! – rankthefirst

関連する問題

 関連する問題