(R语言)如何使用rvest或rcurl点击网页

(R语言)如何使用rvest或rcurl点击网页,第1张

概述我想从 this webpage下载数据 数据可以很容易地被掠夺. 代码可能是这样的: library(rvest)library(pipeR)url <- "http://www.tradingeconomics.com/"css <- "#ctl00_ContentPlaceHolder1_defaultUC1_CurrencyMatrixAllCountries1_GridVi 我想从 this webpage下载数据

数据可以很容易地被掠夺.

代码可能是这样的:

library(rvest)library(pipeR)url <- "http://www.Tradingeconomics.com/"CSS <-     "#ctl00_ContentPlaceHolder1_defaultUC1_CurrencyMatrixAllCountrIEs1_GrIDVIEw1"data <- url %>>%  HTML() %>>%  HTML_nodes(CSS) %>>%  HTML_table()

但是这样的网页有一个问题.

有一个按钮来显示所有国家的数据,但默认值仅为50个国家/地区的数据.

所以如果我使用的代码,我可以只是删除50个国家的数据.

该按钮是用JavaScript生成的,所以我想知道在R中是否有一个方法来点击按钮,然后擦除数据.

解决方法 有时最好在AJAX网络请求级别攻击该问题.对于本网站,您可以使用Chrome的开发工具并观看请求.为了构建表格(整个表格),它使用各种AJAX-y参数对站点进行POST.只要复制一下,做一些数据的响应,你很好去:
library(httr)library(rvest)library(dplyr)res <- POST("http://www.Tradingeconomics.com/",encode="form",user_agent("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/42.0.2311.50 Safari/537.36"),add_headers(`Referer`="http://www.Tradingeconomics.com/",`X-MicrosoftAJAX`="Delta=true"),body=List(              `ctl00$AJAXScriptManager1$ScriptManager1`="ctl00$ContentPlaceHolder1$defaultUC1$CurrencyMatrixAllCountrIEs1$UpdatePanel1|ctl00$ContentPlaceHolder1$defaultUC1$CurrencyMatrixAllCountrIEs1$linkbutton1",`__EVENTTARGET`="ctl00$ContentPlaceHolder1$defaultUC1$CurrencyMatrixAllCountrIEs1$linkbutton1",`srch-term`="",`ctl00$ContentPlaceHolder1$defaultUC1$CurrencyMatrixAllCountrIEs1$GrIDVIEw1$ctl01$DropDownListCountry`="top",`ctl00$ContentPlaceHolder1$defaultUC1$CurrencyMatrixAllCountrIEs1$ParameterContinent`="",`__ASYNCPOST`="false"))res_t <- content(res,as="text")res_h <- paste0(unList(strsplit(res_t,"\r\n"))[-1],sep="",collapse="\n")CSS <- "#ctl00_ContentPlaceHolder1_defaultUC1_CurrencyMatrixAllCountrIEs1_GrIDVIEw1"tab <- HTML(res_h) %>%   HTML_nodes(CSS) %>%  HTML_table() tab[[1]]$COUNTRIESWORLdamERICAEUROPEASIAAUSTRAliAAFRICAglimpse(tab[[1]]

另一个选择是使用RSelenium去页面,点击“”,然后刮掉结果表.

总结

以上是内存溢出为你收集整理的(R语言)如何使用rvest或rcurl点击网页全部内容,希望文章能够帮你解决(R语言)如何使用rvest或rcurl点击网页所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1142319.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-31
下一篇2022-05-31

发表评论

登录后才能评论

评论列表(0条)

    保存