国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python爬蟲之模擬知乎登錄的方法教程

2020-02-16 01:34:37
字體:
來源:轉載
供稿:網友

前言

對于經常寫爬蟲的大家都知道,有些頁面在登錄之前是被禁止抓取的,比如知乎的話題頁面就要求用戶登錄才能訪問,而 “登錄” 離不開 HTTP 中的 Cookie 技術。

登錄原理

Cookie 的原理非常簡單,因為 HTTP 是一種無狀態的協議,因此為了在無狀態的 HTTP 協議之上維護會話(session)狀態,讓服務器知道當前是和哪個客戶在打交道,Cookie 技術出現了 ,Cookie 相當于是服務端分配給客戶端的一個標識。

瀏覽器第一次發起 HTTP 請求時,沒有攜帶任何 Cookie 信息 服務器把 HTTP 響應,同時還有一個 Cookie 信息,一起返回給瀏覽器 瀏覽器第二次請求就把服務器返回的 Cookie 信息一起發送給服務器 服務器收到HTTP請求,發現請求頭中有Cookie字段, 便知道之前就和這個用戶打過交道了。

實戰應用

用過知乎的都知道,只要提供用戶名和密碼以及驗證碼之后即可登錄。當然,這只是我們眼中看到的現象。而背后隱藏的技術細節就需要借助瀏覽器來挖掘了。現在我們就用 Chrome 來查看當我們填完表單后,究竟發生了什么?

(如果已經登錄的,先退出)首先進入知乎的登錄頁面 https://www.zhihu.com/#signin ,打開 Chrome 的開發者工具條(按 F12)先嘗試輸入一個錯誤的驗證碼觀察瀏覽器是如何發送請求的。

從瀏覽器的請求可以發現幾個關鍵的信息

登錄的 URL 地址是 https://www.zhihu.com/login/email 登錄需要提供的表單數據有4個:用戶名(email)、密碼(password)、驗證碼(captcha)、_xsrf。 獲取驗證碼的URL地址是 https://www.zhihu.com/captcha.gif?r=1490690391695&type=login

_xsrf 是什么?如果你對CSRF(跨站請求偽造)攻擊非常熟悉的話,那么你一定知道它的作用,xsrf是一串偽隨機數,它是用于防止跨站請求偽造的。它一般存在網頁的 form 表單標簽中,為了證實這一點,可以在頁面上搜索 “xsrf”,果然,_xsrf在一個隱藏的 input 標簽中

摸清了瀏覽器登錄時所需要的數據是如何獲取之后,那么現在就可以開始寫代碼用 Python 模擬瀏覽器來登錄了。登錄時所依賴的兩個第三方庫是 requests 和 BeautifulSoup,先安裝

pip install beautifulsoup4==4.5.3pip install requests==2.13.0

http.cookiejar 模塊可用于自動處理HTTP Cookie,LWPCookieJar 對象就是對 cookies 的封裝,它支持把 cookies 保存到文件以及從文件中加載。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 雷州市| 涞源县| 会泽县| 都安| 长沙县| 都江堰市| 安宁市| 台山市| 尼勒克县| 绥阳县| 马山县| 卓尼县| 海宁市| 兰西县| 阳城县| 永年县| 渝北区| 宿迁市| 黄平县| 江源县| 伊吾县| 栾城县| 临澧县| 阿城市| 寻甸| 金阳县| 贞丰县| 巴林右旗| 延津县| 鄂尔多斯市| 临沂市| 富川| 大庆市| 宜都市| 郴州市| 庄河市| 武穴市| 怀集县| 大同市| 黎城县| 随州市|