我如何用R加载HTTP资源?

时间:2016-02-05 10:37:18

标签: r

早上好,我已尝试使用下面的代码解析网页,但最后一行显示了

的输出
  

无法加载HTTP资源

谁能告诉我如何处理它?谢谢!代码是:

url3<- "http://www.atb.com.tn/devise" 
getdata3<- readHTMLTable(url3, stringAsFactor = FALSE, isURL = TRUE)

1 个答案:

答案 0 :(得分:1)

不需要Selenium。只需在浏览器开发人员工具中挖掘一下。它动态加载资源/devise。那是数据表。该站点还尝试使用浏览器用户代理字符串来防止抓取(虽然​​抓取不违反其使用条款)和会话cookie以确保您首先访问其他页面。您可以使用rvest

获取数据
library(rvest)

sess <- html_session("http://www.atb.com.tn/", 
                      user_agent("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.39 Safari/537.36"))
pg <- jump_to(sess, "http://www.atb.com.tn/devise")

dat <- content(pg$response, as="parsed")

html_table(html_nodes(dat, "table")[[2]], header=TRUE)

##    Monnaies                   NA Sigle Unité  Achat  Vente
## 1        NA      DOLLAR CANADIEN   CAD     1  1.438  1.459
## 2        NA     COURONNE DANOISE   DKK   100 29.625 30.072
## 3        NA         YEN JAPONAIS   JPY  1000 16.910 17.165
## 4        NA      DINAR KOWEITIEN   KWD     1  6.569  6.668
## 5        NA COURONNE NORVEGIENNE   NOK   100 23.201 23.551
## 6        NA        RYAL DE QATAR   QAR    10  5.424  5.505
## 7        NA        RYAL SAOUDIEN   SAR    10  5.266  5.345
## 8        NA    COURONNE SUEDOISE   SEK    10  2.350  2.386
## 9        NA         FRANC SUISSE   CHF    10 19.858 20.158
## 10       NA       DIRHAM DES EAU   AED    10  5.377  5.458
## 11       NA       LIVRE STERLING   GBP     1  2.871  2.914
## 12       NA       DOLLAR DES USA   USD     1  1.974  2.004
## 13       NA                 EURO   EUR     1  2.211  2.245
## 14       NA       DINAR BAHREINI   BHD     1  5.237  5.316
## 15       NA         DINAR LIBYEN   LYD     1  1.424  1.445