Scrapy框架的学习(12. scrapy中的模拟登陆,发送post请求模拟登陆)
1.在有的網站的的登錄的界面上,有用戶名以及輸入密碼的輸入框
? 然后輸入賬號和密碼進去,點擊登錄,后臺就會把得到的數據發送過去,驗證之后然后就登錄成功了,就會跳轉到
? 響應的登錄之后的網站
?2. 我們可以找到這個登錄網站,可以請求這個網站,請求的時候帶上所攜帶的from表單中的數據
? ? ?然后就可以獲取到登錄之后的界面了
? 3.? scrapy.Request() 方法是用來發送get()請求的,
? ? ?scrapy.FormRequest()方法是來發送post請求的,在發送post請求的時候
? ? ?我們要? 有post請求的url地址,以及post數據 、 還有登錄之后的回調函數
? 4.? ?使用post請求的第一種方式:攜帶表單的數據請求post的請求url,
? ? ? ?scrapy.FormRequest()在parse函數中編寫
? ? ? ?例如:
'''表單數據''' post_data = dict(login="用戶名",password="密碼",utf8=utf8,authenticity_token=authenticity_token,commit=commit)'''表單請求'''yield scrapy.FormRequest("post請求網址",formdata=post_data,callback='登錄之后的回調函數')5. 使用post請求的第二方式,
? ?如果表單里面有? action對應的網址 ,只要找到的輸入框和密碼框的,然后進行登錄
? ?方法? scrapy.FormRequest.from_response(response,formdata={})
? ? from_response的意思就是從響應中找到from表單進行登錄,自動找到表單進行登錄
yield scrapy.FormRequest.from_response(response, # 自動的從response中尋找from表單'''發送的表單里面的鍵,和網頁上的標簽要一致'''formdata={"login": "用戶名", "password": "密碼"},callback='對應的回調函數')? ? 如果有多個表單,我們可以看from_response()的源碼,
? ? 通過里面參數例如,formname、formid等就可以幫助我們定義form表單的位置,也可以通過formxpath()的方式
? ? 來定為位置
?
總結
以上是生活随笔為你收集整理的Scrapy框架的学习(12. scrapy中的模拟登陆,发送post请求模拟登陆)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Scrapy框架的学习(11.scrap
- 下一篇: 利用Flask来构建项目的大概步骤