私は公共の医療データでは、次のウェブサイトをこすりしようとしています: https://prog.nfz.gov.pl/app-jgp/Grupa.aspx?id=Qpc6nYOpOBQ%3drvest:特定した後、(S)(タイトル)をHTMLテーブルを選択し、こすり文字列
私は、テーブルやテーブルこすりしたいと思います 「Tabela xx procedury ICD-9」というタイトルが付いています。ここで、xxは固定数ではありません。
1つではありますが、場合によっては2つのテーブルがページに存在することがあります。そして、他のページとは異なる順序で出現する可能性があるので、n番目のページをウェブサイトに表示することはできません。
たとえば、「Icd-9 main」という文字列が前に付いている同じページのテーブルだけに興味があり、他のものはスキップします。このようなテーブルが2つあり、その内容をdata.frameにスクラップしたいと思います。次のような順序では表示されない場合がありますので、先行の文字列に頼らなければなりません。場合によっては、Icd-9メインテーブルがまったく存在しないことがあります。
Page
----
Icd-10
====
Table
====
Icd-9 main
====
Table
===
Icd-9 main
====
Table
====
Icd-9 supplementary
====
Table
===
私はこのチュートリアルのような順序でn番目のテーブルを選択するコードだけを認識しています:すべてのテーブルがリストにダンプさせる
https://www.r-bloggers.com/using-rvest-to-scrape-an-html-table/
library("rvest")
url <- "http://en.wikipedia.org/wiki/List_of_U.S._states_and_territories_by_population"
population <- url %>%
html() %>%
html_nodes(xpath='//*[@id="mw-content-text"]/table[1]') %>%
html_table()
population <- population[[1]]
し、我々番号で希望のテーブルを選択することができます
私の場合、私は決してどのテーブルが掻き集められるかはわかりません。順序は異なるかもしれません。 "Tabela xx:procedury ICD-9"を含むtring
私の質問は、タイトルまたは記述文字列を前提にしてhtmlテーブルを選択してスクレープする方法です。または、例えば「Tabela xx procedury ICD-9」を含む文字列の直後にのみ現れるテーブルまたは表表
これは素晴らしいepi99です。ファビュラス!神はあなたを祝福し、あなたは私をたくさん助け、私を始めてください。どうやってそれを学んだのですか?あなたは良い情報源を推薦できますか? –
@JacekKotowski、これは主に基本的な手続き型プログラミング(ループとスイッチであり、Rの良いスタイルではない)です。これはテキストやクラスでJavaのプログラミングに入門するために教えられます。 Webのスクレイピングについては、html(DOM)の構造を理解し、CSS.selectorsについて学ぶことが役に立ちます。 )ブラウザの "inspect elements"を使って、Webページの構造を理解してください。 R側では、私はHadley Wickhamのパッケージ "hadleyverse"に多くの注意を払った – epi99