公司有个内部的项目管理软件,其中任务和bug模块需要从禅道发起,然后用爬虫爬取禅道的任务和bug列表及详细信息,从而需要获取禅道的登陆token
经过研究,发现禅道的登陆流程如下:
- 打开登陆页面的时候页面产生一个zentaosid的唯一标识,以及一个verifyRand随机值
- 对输入的密码进行md5加密
- 已经加密的密码+verifyRand再一次md5加密
- 然后post请求登陆地址根据唯一的zentaosid验密
知道了以上步骤不难写出爬虫代码,以python为例
import hashlib
import requests
from lxml import html
loginUrl = '禅道的登陆地址'
password = '密码'
loginName = '用户名'
def getToken():
loginPage = requests.get(loginUrl)
loginPage.encoding = 'utf-8'
SID = loginPage.cookies