用爬蟲登陸禪道最新版

2021-09-05 10:05:55 字數 1838 閱讀 3355

公司有個內部的專案管理軟體,其中任務和bug模組需要從禪道發起,然後用爬蟲爬取禪道的任務和bug列表及詳細資訊,從而需要獲取禪道的登陸token

經過研究,發現禪道的登陸流程如下:

開啟登陸頁面的時候頁面產生乙個zentaosid的唯一標識,以及乙個verifyrand隨機值

對輸入的密碼進行md5加密

已經加密的密碼+verifyrand再一次md5加密

然後post請求登陸位址根據唯一的zentaosid驗密

知道了以上步驟不難寫出爬蟲**,以python為例

import hashlib

import requests

from lxml import html

loginurl =

'禪道的登陸位址'

password =

'密碼'

loginname =

'使用者名稱'

defgettoken()

: loginpage = requests.get(loginurl)

loginpage.encoding =

'utf-8'

sid = loginpage.cookies[

'zentaosid'

]print

('sid = '

+ sid)

logintree = html.fromstring(loginpage.text)

verifyrand = logintree.xpath(

'//*[@id="verifyrand"]'

)if verifyrand:

verifyrand = verifyrand[0]

.attrib[

'value'

]print

('verifyrand = '

+ verifyrand)

hl = hashlib.md5(

) hl.update(password.encode(encoding=

'utf-8'))

print

('md5 第一次加密結果 = '

+ hl.hexdigest())

passwordresult = hl.hexdigest(

)+ verifyrand

print

("passwordresult="

+ passwordresult)

hllast = hashlib.md5(

) hllast.update(passwordresult.encode(encoding=

'utf-8'))

print

('md5 第二次加密結果 = '

+ hllast.hexdigest())

loginbody =

logincookies =

dict

(zentaosid=sid, lang=

'zh-cn'

, keeplogin=

'on'

) loginresultpage = requests.post(loginurl, data=loginbody, cookies=logincookies)

print

('loginresultpage = '

+ loginresultpage.text)

token = loginresultpage.cookies[

'zp'

]print

('token = '

+ token)

return token

獲取token之後就可以愉快的爬取自己需要的資訊了

爬蟲 cookie模擬登陸

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

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...

python爬蟲登陸 帶Cookie token

用python寫爬蟲整的很方便,弄了個模擬登陸,登陸後帶上token和cooke請求頁面 就拿gitlab練下手了,這個還是有一丟丟麻煩的 一 登陸介面 獲取隱藏域中的token,構建表單的時候需要 獲取到這個 gitlab session,登陸校驗時需要帶著這個資訊 準備好token和cookie...