我想从该网站下载数据。
http://asphaltoilmarket.com/index.php/state-index-tracker/
但是请求不断超时。
我已经尝试过以下方法,但是它总是超时。
library(rvest)
IndexData <- read_html("http://asphaltoilmarket.com/index.php/state-index-tracker/")
library(RCurl)
IndexData <- getURL("http://asphaltoilmarket.com/index.php/state-index-tracker/")
library(httr)
library(XML)
IndexData <- htmlParse(GET(url))
此网站可以在浏览器中正常打开,我可以使用excel和alteryx下载此数据。
答案 0 :(得分:2)
如果“获取数据”是指“刮擦该页面上的表格”,那么您只需要走得更远。
首先,您需要检查网站robots.txt
,以查看是否允许抓取。在这种情况下,没有提及刮刮操作。
您已经有了html
的站点,您只需要找到所需的CSS选择器即可。您可以使用开发人员工具或类似selector gadget之类的东西来查找表并获取其CSS选择器。
使用html之后,使用html_node()
提取您感兴趣的节点,然后使用html_table()
提取表。
library(magrittr)
library(rvest)
html <-read_html("http://asphaltoilmarket.com/index.php/state-index-tracker/")
html %>%
html_node("#tablepress-5") %>%
html_table()
#> State Jan Feb Mar Apr May Jun Jul
#> 1 Alabama $496.27 $486.86 $482.16 $498.62 $517.44 $529.20 $536.26
#> 2 Alaska $513.33 $513.33 $513.33 $513.33 $513.33 $525.84 $535.00
#> 3 Arizona $476.00 $469.00 $466.00 $463.00 $470.00 $478.00 $480.00
#> 4 Arkansas $503.50 $500.50 $494.00 $503.00 $516.50 $521.20 $525.00
#> 5 California $305.80 $321.00 $346.20 $365.50 $390.10 $380.50 $345.50
#> 6 Colorado $228.10 $301.45 $320.58 $354.12 $348.70 $277.55 $297.23
#> 7 Connecticut $495.00 $495.00 $495.00 $495.00 $502.50 $502.50 $500.56
#> 8 Delaware $493.33 $458.33 $481.67 $496.67 $513.33 $510.00 $498.33
#> 9 Florida $507.30 $484.32 $487.12 $503.38 $518.52 $517.68 $514.03
#> 10 Georgia $515.00 $503.00 $503.00 $517.00 $534.00 $545.00 $550.00