相关疑难解决方法(0)

使用rvest或httr登录网页上的非标准表单

我试图使用rvest来蜘蛛网页,该网页需要在表单上登录电子邮件/密码.

rm(list=ls())
library(rvest)

### Trying to sign into a form using email/password 

url       <-"http://www.perfectgame.org/"   ## page to spider
pgsession <-html_session(url)               ## create session
pgform    <-html_form(pgsession)[[1]]       ## pull form from session

set_values(pgform, `ctl00$Header2$HeaderTop1$tbUsername` = "myemail@gmail.com") 
set_values(pgform, `ctl00$Header2$HeaderTop1$tbPassword` = "mypassword")

submit_form(pgsession,pgform,submit=`ctl00$Header2$HeaderTop1$Button1`)
Run Code Online (Sandbox Code Playgroud)

这给我以下错误信息:

Error in submit_request(form, submit) : 
Run Code Online (Sandbox Code Playgroud)

找不到对象'ctl00 $ Header2 $ HeaderTop1 $ Button1'

如果我在没有指定submit参数的情况下提交表单,我会得到:

Submitting with 'ctl00$Header2$HeaderTop1$Button1'
Error in function (type, msg, asError = TRUE)  : <url> malformed
Run Code Online (Sandbox Code Playgroud)

我也尝试将参数直接传递给httr,如本问题所述:如何在R中发布一个简单的HTML表单?,但"submit"参数不接受提交按钮,使用向后引号(``),引号或没有任何引号:

library(httr)

url <- "http://www.perfectgame.org/Rankings/Players/Default.aspx?gyear=2015&num=500"

fd <- list(
    submit = `ctl00$Header2$HeaderTop1$Button1`, …
Run Code Online (Sandbox Code Playgroud)

html forms r rvest

22
推荐指数
1
解决办法
9415
查看次数

在R中刮掉受密码保护的网站

我试图从R中受密码保护的网站上抓取数据.看来,httr和RCurl软件包似乎是使用密码认证进行抓取的最佳选择(我也查看了XML包).

我试图抓取的网站如下(您需要一个免费帐户才能访问整个页面):http: //subscribers.footballguys.com/myfbg/myviewprojections.php ?projector = 2

这是我的两次尝试(用我的用户名替换"username",用我的密码替换"password"):

#This returns "Status: 200" without the data from the page:
library(httr)
GET("http://subscribers.footballguys.com/myfbg/myviewprojections.php?projector=2", authenticate("username", "password"))

#This returns the non-password protected preview (i.e., not the full page):
library(XML)
library(RCurl)
readHTMLTable(getURL("http://subscribers.footballguys.com/myfbg/myviewprojections.php?projector=2", userpwd = "username:password"))
Run Code Online (Sandbox Code Playgroud)

我查看了其他相关帖子(下面的链接),但无法弄清楚如何将他们的答案应用到我的案例中.

如何使用R从需要cookie的SSL页面下载压缩文件

如何用R(https链接)webscrape安全页面(使用XML包中的readHTMLTable)?

从受密码保护的站点读取信息

R - RCurl从受密码保护的站点获取数据

http://www.inside-r.org/questions/how-scrape-data-password-protected-https-website-using-r-hold

xml r web-scraping rcurl httr

18
推荐指数
2
解决办法
2万
查看次数

如何使用R从需要cookie的SSL页面下载压缩文件

我正在尝试从https页面下载文件,该页面需要按"我同意"按钮然后存储cookie.如果这个答案在某个地方显而易见,我道歉

当我直接在Chrome中打开网页并单击"我同意"时,文件开始自动下载.

http://www.icpsr.umich.edu/cgi-bin/bob/zipcart2?path=SAMHDA&study=32722&bundle=delimited&ds=1&dups=yes

我试图复制这个例子,但我不认为hangseng网站实际上存储了cookie /身份验证,所以我不知道这个例子是否应该是我需要的.

除此之外,我认为SSL使身份验证变得复杂,因为我认为getURL()调用将需要证书规范,如cainfo = system.file("CurlSSL","cacert.pem",package ="RCurl"))

我太过RCurl的初学者了解这个网站是否相当困难,或者我是否只是遗漏了一些明显的东西.

谢谢!

r web-scraping rcurl

6
推荐指数
1
解决办法
2479
查看次数

标签 统计

r ×3

rcurl ×2

web-scraping ×2

forms ×1

html ×1

httr ×1

rvest ×1

xml ×1