2016-09-11 8 views
2

私は、複数のテーブルを持つWebページからテーブルを削り取ろうとしています。私はhttps://www.census.gov/geo/reference/ansi_statetables.htmlから "アメリカとコロンビア特別区のFIPSコード"テーブルを取得したいと思います。私はXML::readHTMLTable()が行くための正しい方法だと思いますが、私は、私はエラーを取得する次しようとすると:Rテーブルの名前とスクレイプを見つけるR

url = "https://www.census.gov/geo/reference/ansi_statetables.html" 
readHTMLTable(url, header = T, stringsAsFactors = F) 

named list() Warning message: XML content does not seem to be XML: ' https://www.census.gov/geo/reference/ansi_statetables.html '

を私は関数に任意の表示を与えていないよので、これは、当然のことながら、驚くべきことではありませんのですテーブル私は読んでいます。私は "Inspect"の中でかなり掘り下げてきましたが、もっと正確にする方法については点をつないでいません。ドキュメントやSOで見つけた他の例に似た名前やクラスの表がないようです。思考? rvest代わりのXMLを使用して

+3

私は 'readHTMLTable(RCurl :: getURL(url)、...)'でそれを得ました。 –

答えて

3

readHTMLTable()でhtmlページのコンテンツと利用結果をこすりするreadLines()の使用を検討してください:

url = "https://www.census.gov/geo/reference/ansi_statetables.html" 
webpage <- readLines(url) 

readHTMLTable(webpage, header = T, stringsAsFactors = F)    # LIST OF 3 TABLES 

# $`NULL` 
#     Name FIPS State Numeric Code Official USPS Code 
# 1    Alabama      01     AL 
# 2    Alaska      02     AK 
# 3    Arizona      04     AZ 
# 4    Arkansas      05     AR 
# 5   California      06     CA 
# 6    Colorado      08     CO 
# 7   Connecticut      09     CT 
# 8    Delaware      10     DE 
# 9 District of Columbia      11     DC 
# 10    Florida      12     FL 
# 11    Georgia      13     GA 
# 12    Hawaii      15     HI 
# 13    Idaho      16     ID 
# 14    Illinois      17     IL 
# ... 

特定のデータフレームのリターンのために

fipsdf <- readHTMLTable(webpage, header = T, stringsAsFactors = F)[[1]] 
1

別の解決策は、次のとおりです。

require(rvest) 
read_html("https://www.census.gov/geo/reference/ansi_statetables.html") %>% 
    html_table %>% .[[1]] 
関連する問題