Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用R和rvest/httr登录和重定向的Web抓取_R_Web Scraping_Rvest_Httr - Fatal编程技术网

使用R和rvest/httr登录和重定向的Web抓取

使用R和rvest/httr登录和重定向的Web抓取,r,web-scraping,rvest,httr,R,Web Scraping,Rvest,Httr,我想从网页上抓取信息。有一个登录屏幕,当我登录时,我可以访问我想从中获取信息的各种页面(例如玩家的姓氏、对象.lastName)。 我正在使用R和包rvest和httr 不知何故,登录似乎工作,但我不知道如何重定向到页面,我需要从中获取信息 登录表单可在http://kickbase.sky.de/anmelden和相关页面的格式为http://kickbase.sky.de/spielerprofil/player-name/number,例如http://kickbase.sky.de/sp

我想从网页上抓取信息。有一个登录屏幕,当我登录时,我可以访问我想从中获取信息的各种页面(例如玩家的姓氏、对象
.lastName
)。 我正在使用R和包
rvest
httr

不知何故,登录似乎工作,但我不知道如何重定向到页面,我需要从中获取信息

登录表单可在
http://kickbase.sky.de/anmelden
和相关页面的格式为
http://kickbase.sky.de/spielerprofil/player-name/number
,例如
http://kickbase.sky.de/spielerprofil/nadiem-amiri/1639#

这是我使用的代码。非常感谢你的帮助

install.packages("rvest")
install.packages("httr")
library(rvest)
library(httr)

handle <- handle("http://kickbase.sky.de")  # Create handle
path   <- "anmelden" #  Login Path

# fields found in the login form.
login <- list(
  email = "testscrape@gmail.com"
  ,password  = "tester"
  ,redirect_url =  # I want to be redirected to this page and then scrape info from here
    "http://kickbase.sky.de/spielerprofil/nadiem-amiri/1639#"
)

response <- POST(handle = handle, path = path, body = login)

webpage <- read_html(response)
name_data <- html_text(html_nodes(webpage, ".lastName"))
name_data
install.packages(“rvest”)
安装程序包(“httr”)
图书馆(rvest)
图书馆(httr)
句柄
库(rvest)

URL感谢您快速而有益的回复。如何知道页面是否有API?使用Chrome开发者工具确定加载页面时浏览器中发生的请求。单击图中所示的“XHR”将帮助您过滤所有XHR请求,这有助于我了解请求的json响应
library(rvest)
url<-"https://kickbase.sky.de/"
page<-html_session(url)
page<-rvest:::request_POST(page,url="https://kickbase.sky.de/api/v1/user/login",
                           body=list("email"="testscrape@gmail.com",
                                     "password"="tester",
                                     "redirect_url"="http://kickbase.sky.de/spielerprofil/nadiem-amiri/1639#"),
                         encode='json'
                           )
player_page<-jump_to(page,"https://kickbase.sky.de/api/v1/news?skip=0&player=1639&limit=3")
data<-jsonlite::fromJSON(readBin(player_page$response$content,what="json"))

print(data)