我正在尝试使用R包rvest来以表格的形式从城镇评估者网站中以表格的形式抓取数据以及该表格中的hrefs。尽管从其他网站(例如Wikipedia)上刮来了运气,但我无法从镇评估员那里得到任何东西。
我正在使用RStudio v1.1.442和R v3.5.0。
sessioninfo()
R version 3.5.0 (2018-04-23)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: macOS High Sierra 10.13.6
Matrix products: default
BLAS: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/3.5/Resources/lib/libRlapack.dylib
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] rvest_0.3.3 xml2_1.2.0 V8_2.2
loaded via a namespace (and not attached):
[1] httr_1.4.0 compiler_3.5.0 selectr_0.4-1 magrittr_1.5 R6_2.4.0 tools_3.5.0 yaml_2.2.0
[8] curl_3.3 Rcpp_1.0.1 stringi_1.4.3 stringr_1.4.0 jsonlite_1.6
我尝试遵循一些示例。首先,以维基百科上的州人口为例,该方法运行良好。
url <- "https://en.wikipedia.org/wiki/List_of_states_and_territories_of_the_United_States_by_population"
population <- url %>%
read_html() %>%
html_nodes("#mw-content-text > div > table:nth-child(11)") %>%
html_table()
population <- population[[1]]
我也能够毫无问题地从yelp抓取数据。例如,这给了我餐厅的名称。
url <- "https://www.yelp.com/search?find_loc=New+York,+NY,+USA"
heading <- url %>%
read_html() %>%
html_nodes(".alternate__373c0__1uacp .link-size--inherit__373c0__2JXk5") %>%
html_text()
我遇到麻烦的网站就是这样,它是在特定街道上搜索房屋的结果。
url <- "https://imo.ulstercountyny.gov/viewlist.aspx?sort=printkey&swis=all&streetname=Lake+Shore+Dr"
helpme <- url %>%
read_html() %>%
html_nodes("#tblList > tbody") %>%
html_table()
我还希望能够使用类似这样的方法提取hrefs
helpme <- url %>%
read_html() %>%
html_nodes("#tblList > tbody") %>%
html_attr('href') %>%
html_text()
不幸的是,我尝试刮擦表和href的尝试是空的。
这个网站有什么奇怪的地方吗?我使用了chrome浏览器检查器和SelectorGadget来帮助找到正确的副本选择器。我也尝试过使用xpath。两种方法的结果都是相同的。