R 从动态网站提取所有实例的数据

R 从动态网站提取所有实例的数据,r,web-scraping,rvest,httr,R,Web Scraping,Rvest,Httr,我正试图从你的网站上搜集所有健身房的数据 在Developer Tools中,我找到了一个指向Web API URL的指针,该URL应该在下面存储此信息,但当我在浏览器中运行它时,我得到了 'ObjectContent'1'类型未能序列化内容类型'text/xml'的响应正文;字符集=utf-8' 类似地,如果我运行以下代码: # user_agent argument is optional here and results are the same whether I include it

我正试图从你的网站上搜集所有健身房的数据

在Developer Tools中,我找到了一个指向Web API URL的指针,该URL应该在下面存储此信息,但当我在浏览器中运行它时,我得到了

'ObjectContent'1'类型未能序列化内容类型'text/xml'的响应正文;字符集=utf-8'

类似地,如果我运行以下代码:

# user_agent argument is optional here and results are the same whether I include it or not 
httr::GET('https://www.xercise4less.co.uk/Umbraco/Api/FindAGymApi/GetAll',  httr::user_agent("httr"))
你有什么想法吗

或者,我可以(几乎)通过

library(rvest)
library(magrittr)

url <- "https://www.xercise4less.co.uk/find-a-gym/"
my_pg <- read_html(url) 
my_pg %>% html_nodes('select > option')
库(rvest)
图书馆(magrittr)

url这段代码应该可以满足您的需要,或者至少可以更接近它。我借鉴了你的第二个例子。我可能会删除第一行

final%html\u节点('select>option'))

df你已经差不多做到了,你只需要设置服务器期望的正确请求头,然后你就可以得到所有健身房的所有信息

library(httr)

headers = c('Accept'='application/json, text/javascript, */*; q=0.01')
r <- content(httr::GET(url = 'https://www.xercise4less.co.uk/Umbraco/Api/FindAGymApi/GetAll', httr::add_headers(.headers=headers)))
print(r)
库(httr)
headers=c('Accept'='application/json,text/javascript,*/*;q=0.01')

r谢谢,这并不能完全回答我的问题,但是这个格式化代码在将来会很有用,干杯!这太棒了,非常感谢!如何确定合适的标题?我通常只使用
'Accept'='application/json
在搜索某个健身房时,我通过开发工具观察到了网络流量,然后尝试删除标题,直到找到了绝对需要的标题。