爬蟲實戰之模擬登陸Github

2021-09-01 14:47:06 字數 912 閱讀 6610

這裡不討論用 github api 的情況,僅僅以 github 來說明模擬登陸
先嘗試用真實瀏覽器登陸,登陸成功後在開發者工具的 network 選項卡中捕獲 session 檔案。可以看到,登陸所需要的資料不僅僅是 email(或使用者名稱) 和密碼,還需要其它的 3 個字段,而這 3 個字段普通使用者在真實瀏覽器中是無法填寫的(也無需填寫,這仨字段會自動附加到表單中提交)。

其中的 commit、utf8 的值是不變的,只有 authenticity_token 欄位的值是每次登陸都不一樣的(為的就是區分人類與爬蟲程式),authenticity_token 欄位是在  (登陸頁面,未登陸狀態)的 from 元素下的乙個隱含字段(不顯示在瀏覽器中),其type屬性值為hidden

下圖展示了(重新)登陸頁面的原始碼,其中 type 屬性為 hidden 的 input 欄位中的 authenticity_token 屬性的值就是需要提取出來作為表單資料的一部分提交至伺服器

從下圖可以看到響應碼(status code)是 302 found 表示重定向跳轉至其它 url,這裡跳轉至 也就是說,登陸成功後就跳轉至 github 首頁(即個人主頁)

雖然是在  頁面中登陸,但登陸時是向  提交表單資料,所以在 session 響應中可惜檢視到已提交的表單資料。

上圖展示了登陸成功後,已提交的表單資料,可以發現 authenticity_token 欄位的值和登陸前的值是一致的(email、password 字段由於是明文,所以這裡打碼了)

能保持登陸狀態的原因是登陸成功後生成 cookies 的功勞,不過 cookies 一般不是永久有效的,如果希望長期處於登陸狀態,需要每隔一段時間檢測下 cookies 是否還有效(或進行異常處理),失效的話就需要重新提交表單生成新的 cookies。

Python 爬蟲之模擬登陸CSND

基本的指令碼語言是python,雖然不敢說是最好的語言,至少是最好的之一 0.0 用模擬登陸,我們需要用到多個模組,如下 requests beautifulsoup 安裝git clone git cd requests pip install pip pip install requests介紹...

爬蟲 cookie模擬登陸

cookie 適用於抓取需要登入才能訪問的頁面 http協議為無連線協議,cookie 存放在客戶端瀏覽器,session 存放在web伺服器 1 先登入成功1次,獲取到攜帶登陸資訊的cookie 登入成功 個人主頁 f12抓包 重新整理個人主頁 找到主頁的包 home 一般cookie都在all ...

使用requests模擬登陸github

學了了下python requests 以及文字處理和正則工具re,順便應用一下。使用requests模擬登陸github 準備 tampler data 使用教程 利用它獲取到登陸所需要的header,post引數等資訊。requests 快速入門教程 模擬 import requests imp...