我試圖在需要登錄的網站上抓取頁面,並且很快得到403錯誤。當使用Rvest登錄網站進行刮擦時出現403錯誤
我已經修改了來自這兩個職位的代碼爲我的網站,Using rvest or httr to log in to non-standard forms on a webpage和how to reuse a session to avoid repeated login when scraping with rvest?
library(rvest)
pgsession <- html_session("https://www.optionslam.com/earnings/stocks/MSFT?page=-1")
pgform <- html_form(pgsession)[[1]]
filled_form <- set_values(pgform, 'username'='user', 'password'='pass')
s <- submit_form(pgsession, filled_form) # s is your logged in session
當運行的代碼,我得到這個消息:
Submitting with 'NULL'
Warning message:
In request_POST(session, url = url, body = request$values, encode = request$encode, :
Forbidden (HTTP 403).
我也跑了通過將user_agent更新爲RS,以此方式進行編碼然而,在評論中提出,我收到與上面相同的錯誤。
library(rvest)
library(httr)
uastring <- "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36"
pgsession <- html_session("https://www.optionslam.com/earnings/stocks/MSFT?page=-1", user_agent(uastring))
pgform <- html_form(pgsession)[[1]]
filled_form <- set_values(pgform, 'username'='user', 'password'='pass')
s <- submit_form(pgsession, filled_form) # s is your logged in session
如果你拉的頁面,而不會登錄,就說明你在右下角的文字下方的位數據表的:「收益事件記錄:65」
一旦登錄,它將顯示全部65個事件,並且表格將被填充,這是我想要下載的內容。我擁有所需的所有代碼,但只是登錄部分。
謝謝你的幫助。
不應該'submit_form(pgsession,pgform)'是'submit_form(pgsession,filled_form)' –
你試過設置/改變用戶 - 代理?編輯:你肯定需要用filled_form調用submit_form,因爲@Chirayu說 –
@ChirayuChamoli,我已經更新了你指出的錯誤以及收到的錯誤信息。感謝您指出我的第一個錯誤。 – mks212