使用requests模拟登陆csdn

csdn登陆的时候有一下参数:

postData

{

username: "xxx"

password: "xxx"

lt: "xxx"    这是一个流水号

execution: "xxx"

_eventId:“submit”

}

此外还有个一个jsessionid,进入登陆页面的时候保存在cookie中,也可以在登陆页面查找

代码如下:

import requests
from bs4 import BeautifulSoup

requests.Session()

hea = {"User-Agent":"Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko","Accept-Language":"zh-CN,zh;q=0.8"}
first_url = "https://passport.csdn.net/account/login?from=http://my.csdn.net/my/mycsdn"
#请求的时候如果不带头信息的话会出现403错误
html = requests.get(first_url,headers=hea).text

soup = BeautifulSoup(html,'html.parser')
form = soup.find("form")
LT = form.find(attrs={"name":"lt"}).attrs['value']
jsessionid = form.attrs['action'][26:66]
username = 'xxxx'
password = 'xxxx'
execution = 'e1s1'
_eventId = 'submit'
lt = LT

login_url = "https://passport.csdn.net/account/login;jsessionid="+jsessionid+"?from=http://my.csdn.net/my/mycsdn"
print(login_url)
post_data = {"username":username,"password":password,"lt":LT,"execution":execution,"__eventId":_eventId}
print(post_data)
rs = requests.post(login_url,data=post_data,headers=hea)


mycsdn_url = "http://my.csdn.net/"
mycsdn = requests.get(mycsdn_url,headers=hea).text
print(mycsdn)


猜你喜欢

转载自blog.csdn.net/zhongyoubing/article/details/77873656