这是我的可重现示例:
library(rvest)
page <- html("http://google.com")
class(page)
page
> as.character(page)
Error in as.vector(x, "character") :
cannot coerce type 'externalptr' to vector of type 'character'
Run Code Online (Sandbox Code Playgroud)
如何将页面从 html 类转换为字符向量,以便将其存储在某处?
html_text 或 html_attr 之类的 html 函数没有给我完整的源代码。我想存储它,以便以后可以使用 html() 重新加载它。
谢谢。
尝试使用R从R上传数据文件httr POST.以下几乎可以工作,但我需要指定文件名,例如"mydata.csv".如何指定文件名?它到达服务器时是空白的.
POST(uri, body=list(y=upload_file(filename)))
Run Code Online (Sandbox Code Playgroud)
在curl其中一个将指定它与-F name=filename如下:
curl -i -F name=test -F filedata=@localfile.jpg http://example.org/upload
Run Code Online (Sandbox Code Playgroud)
我正在尝试通过美国人口普查地理编码器对一组地址进行批量地理编码:http : //geocoding.geo.census.gov/geocoder/
我发现了这个问题:
哈德利的建议非常适合将我的数据帧发送到 API 并取回地理编码地址。我遇到的问题是如何将返回的数据返回到数据框中。我会在那里评论他的回应,但不幸的是,由于这是一个新帐户,我还不能发表评论。
所以我的代码如下:
req <- POST("http://geocoding.geo.census.gov/geocoder/geographies/addressbatch",
body = list(
addressFile = upload_file("mydata.csv"),
benchmark = "Public_AR_Census2010",
vintage = "Census2010_Census2010"
),
encode = "multipart",
verbose())
stop_for_status(req)
content(req)
Run Code Online (Sandbox Code Playgroud)
当我运行 content(req) 时,我得到如下所示的数据:
"946\",\"123 MY STREET, ANYTOWN, TX,
99999\",\"Match\",\"Non_Exact\",\"123 MY STREET, ANYTOWN, TX,
99999\",\"-75.43486,80.423775\",\"95495654\",\"L\",\"99\",\"999\",\"021999\",\"3
005\"\n\"333\",\"456 MY STREET, ANYTOWN, TX,
99999\",\"Match\",\"Exact\",\"456 MY STREET, ANYTOWN, TX,
99999\",\"-75.38545,80.383747\",\"6546542\",\"R\",\"99\",\"999\",\"021999\",\"3002\"\n\
Run Code Online (Sandbox Code Playgroud)
我已经尝试使用这里提到的 jsonlite 方法:Successly coercing paginated JSON object to R dataframe
以及谷歌搜索 httr/content 到数据框,并没有任何运气。我最接近获得我想要的东西的是使用
cat(content(req, "text"), "\n") 它得到的结果看起来像一个我可以用作数据框的 …
试图解析这个xml文件:http: //data.fcc.gov/api/block/find ?latitude = 48.9905&longitude = 1222.2733&showall = false
rvest/ xml2接缝无法正确识别节点:
require(rvest) #which uses xml2 internally
doc <- read_xml("http://data.fcc.gov/api/block/find?latitude=48.9905&longitude=-122.2733&showall=false")
> doc
{xml_document}
<Response>
[1] <Block FIPS="530730102002091"/>
[2] <County FIPS="53073" name="Whatcom"/>
[3] <State FIPS="53" code="WA" name="Washington"/>
Run Code Online (Sandbox Code Playgroud)
试图获得县节点我做了 - 导致错误(没有匹配)
doc %>% xml_node("County") # Error: No matches
Run Code Online (Sandbox Code Playgroud)
我也试过它read_html并httr::GET结合两者:read_html和read_xml......任何想法
PS:示例来自此处:解析对查询的XML响应.我试图解决这个问题rvest
我有一个 PostgreSQL 数据库,我使用 Talend DI 为其创建了 RESTful Api,它允许我查询表
现在我的问题是如何在 Shiny 中调用我的 Api 并显示收到的数据?
http获取响应示例:
[{"medical_consultations":{"medical_consultation":[{"id":"1640087","id_consultation":"GFAPAAPA P 834406012009","consultation_date":"07-01-2009","id_center":"APA"},{"id":"1640088","id_consultation":"GFAPAAPA P1079007012010","consultation_date":"08-01-2010","id_center":"APA"},{"id":"1640089","id_consultation":"GFAPAAPA P1098811052007","consultation_date":"12-05-2007","id_center":"APA"}]}}]
Run Code Online (Sandbox Code Playgroud)
Ps:我在 Shiny 中使用“RPostgreSQL”包直接连接到我的数据库没有问题,但我更喜欢将它与 Shiny 分开,那就是使用我的网络服务
您好我正在尝试检索这些wepages元描述
从页面来源"
Data<-data.frame(Pages=c(
"http://boingboing.net/2016/06/16/spam-king-sanford-wallace.html",
"http://boingboing.net/2016/06/16/omg-the-japanese-trump-commer.html",
"http://boingboing.net/2016/06/16/omar-mateen-posted-to-facebook.html"))
Run Code Online (Sandbox Code Playgroud)
期望的输出
Data$Meta_Description<-data.frame(Extracted=c(
"Sanford Wallace gets 2.5 years in prison for 27 million Facebook",
"OMG, this Japanese Trump Commercial is everything",
"Omar Mateen posted to Facebook during Orlando mass shooting"))
Run Code Online (Sandbox Code Playgroud)
我试图用httr来完成这个任务但是我无法以所需的输出格式获取它或者从使用GET命令检索的内容中提取内容
library (httr)
resp<-GET ("http://boingboing.net/2016/06/16/spam-king-sanford-wallace.html")
str(resp)
List of 10
$ url : chr "http://boingboing.net/2016/06/16/spam-king-sanford-wallace.html"
$ status_code: int 200
$ headers :List of 22
..$ server : chr "Apache/2.2"
Run Code Online (Sandbox Code Playgroud)
我需要从源代码中提取的字段在此字符串之后
<meta itemprop="description" content="
Run Code Online (Sandbox Code Playgroud)
像这样
<meta itemprop="description" content="'Spam King'
Sanford Wallace gets 2.5 years in prison for …Run Code Online (Sandbox Code Playgroud) 我有一个小问题,涉及在网站上发布搜索请求并使用 R 包 rvest 和 httr 显示结果...我只想对名称“Acer Campestre”进行一次搜索,然后仅勾选“匹配”框仅完整单词”。这是我的代码:
library(httr)
library(rvest)
col = POST(url="http://www.catalogueoflife.org/col",
encode="form",
body=list(text="Acer campestre",
fossil="0",
match="1",
submit="Search"))
col_html = read_html(col)
col_table = html_table(col_html,fill=T)
Run Code Online (Sandbox Code Playgroud)
我想我离答案不太远,但似乎我总是在使用这种使用html代码的命令时遇到麻烦...希望有人可以帮助我,提前感谢!
我的目标是从 Shopify 导入客户的订单历史记录。Shopify 只允许我每个请求导入 250 个订单,但我的客户有数千个订单。
这是(基本上)我当前使用httr 的工作解决方案,它非常慢
fetchedList <- list()
# Loop through pages of orders and collect them
for(pg in 1:10){
requestURL <- paste0("https://abc-store.myshopify.com/admin/orders.json?page=", p)
fetched <- httr::GET(
url = requestURL,
httr::add_headers(Accept = "application/json"),
httr::authenticate(user = "foo", password = "bar")
)
# Append the fetched response to fetchedList
fetchedList <- c(fetchedList, list(fetched))
}
# Process the results...
Run Code Online (Sandbox Code Playgroud)
我想通过发出多个并发请求来加快速度。我怎样才能实现这个目标?似乎curl和RCurl都支持这一点,但我对HTTP 相当陌生,无法让任何一个解决方案工作。
有人可以帮助我或给我一些建议如何从这个网址抓取表格: https: //www.promet.si/portal/sl/stevci-prometa.aspx。
我尝试使用说明和包rvest、httr 和 html但对于这个特定的站点没有任何成功。谢谢。
我正在尝试使用HTTR包中的GET函数为位于 github 上的 csv 文件创建自动拉入 R。
这是我正在尝试下载的表格。
我可以使用以下 GET 请求连接到该文件:
library(httr)
x <- httr::GET("https://github.com/CSSEGISandData/COVID-19/blob/master/csse_covid_19_data/csse_covid_19_time_series/time_series_19-covid-Confirmed.csv")
Run Code Online (Sandbox Code Playgroud)
但是我不确定如何将其转换为类似于 github 上的表格的数据框。
任何帮助将不胜感激。