我們知道有一些**是需要驗證碼才可以登陸的,比如豆瓣網在錯誤輸入幾次賬號密碼後,都會需要提交包含驗證碼的表單才可以登陸,便需要處理驗證碼型登陸
技術路徑:scrapy爬蟲框架。
技術重點:還是scrapy的formrequest方法。
(由於由於不涉及到豆瓣網登陸後頁面的解析(老生常談的問題了)。我們只需要編寫spider模組的**就可以了。)
我們給出**
:#用於獲取驗證碼的鏈結
login_pic_url=response.xpath(
'//*[@id="captcha_image"]/@src'
).extract_first(
('獲取驗證碼url中'
)#這裡列印出驗證碼的鏈結,開啟瀏覽器檢視鏈結,記錄下驗證碼
(login_pic_url)
#在這裡的表單中填寫驗證碼
data=
#利用formrequest.from_response()方法提交表單
完成頁面解析
yield formrequest.from_response(response,formdata=data,callback=self.parsepage)
#解析登陸後的頁面,解析內容可自己實現,在這裡就以儲存網頁作為解析內容
defparsepage
(self, response)
:with
open
('d:/豆瓣.html'
,'wb'
)as f:
f.write(response.body)這樣我們就實現了模擬登陸需要驗證碼的**。
Scrapy 模擬登陸
1.重寫 爬蟲中的start requests 方法,直接攜帶cookies 進行登入 注意的是在scrapy 中,cookies 不能放在headers 中,而需要把cookies作為乙個獨立的引數。因為在scrapy配置檔案中單單獨定義了乙個cookies配置,讀取cookies 會直接從該配中...
豆瓣簡單模擬登陸
找到登陸介面後,用requests.post 請求該網頁url,之後將得到的cookie存入本地。遇到什麼問題?引數問題,在requests的post中要用,data。在get中要用params,這個就搞人了。給我感覺cookie的作用。沒有cookie,一些 是不能爬取的,要爬就需要cookie,...
Python爬蟲模擬登陸豆瓣
coding utf 8 import requests,re from pil import image class doubanspider object def init self self.session requests.session def login self,username,pa...