import requests
import re
def login_to_tianyancha(username, password):
# 登录接口URL
login_url = 'https://passport.tianyancha.com/login'
session = requests.session()
# 获取登录时需要的加密参数
result = session.get(login_url)
execution = re.search('"execution":"(.*?)"', result.text).group(1)
_event_id = re.search('_event_id:"(.*?)"', result.text).group(1)
# 登录数据
login_data = {
'username': username,
'password': password,
'execution': execution,
'_event_id': _event_id,
'lt': ''
}
# 发送登录请求
login_response = session.post(login_url, data=login_data)
# 登录成功后,获取token
token = re.search('"token":"(.*?)"', login_response.text).group(1)
print(f'登录成功,获取到的token: {token}')
return token, session
# 使用示例
username = 'your_username'
password = 'your_password'
token, session = login_to_tianyancha(username, password)
在这段代码中,我们首先定义了一个函数login_to_tianyancha
,它接受用户名和密码作为参数,使用requests
库来管理会话,并通过正则表达式解析登录页面中的关键参数。然后,我们构建登录数据并发送POST请求进行登录。登录成功后,我们再次使用正则表达式提取token。最后,我们返回token和包含登录状态的会话对象。