龙空技术网

python模拟登录知乎

故事编程 291

前言:

眼前你们对“python框架模拟登录”大约比较讲究,各位老铁们都想要知道一些“python框架模拟登录”的相关文章。那么小编也在网络上收集了一些对于“python框架模拟登录””的相关内容,希望小伙伴们能喜欢,大家快快来学习一下吧!

#导入需要的库

import requests #导入requests库,用来做网页请求

from bs4 import BeautifulSoup #导入BeautifulSoup库,用来解析网页元素

import time #导入time库,用来获取当前时间戳

from PIL import Image #导入Image库,用来显现获取并保存在本地的验证码

#构造请求头头部信息

headers={}

headers["User-Agent"]="Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36"

headers["Host"]=""

headers["Referer"]=""

#构造能自动处理cookie的session会话

session = requests.Session()

starturl=""

startresponse = session.get(starturl,headers=headers)

#获取xsrf信息

soup = BeautifulSoup(startresponse.text,"html.parser")

xsrfs = homesoup.find("input",{"name":"_xsrf"})

xsrf = xsrfs["value"]

#获取验证码文件(知乎的验证码链接地址中包含一个时间戳),因为验证码只是一次临时的这里选择保存本地人工识别,多的可以接入云端打码

randomtime = str(time.time()*1000)

captcharurl = ""+randomtime+"&type=login"

captcharesponse = session.get(captcharurl,headers=headers)

def getcaptcha():

with open("checkcode.gif","wb") as f:

f.write(captcharesponse.content)

f.close()

im = Image.open('checkcode.gif')

im.show()

captcha = input('请输入验证码: ')

return captcha

#模拟登录

headers["X-Xsrftoken"]=xsrf

headers["X-Requested-With"]="XMLHttpRequest"

loginurl = ""

postdata = {"phone_num":手机号,"password":密码,"captcha":getcaptcha()}

loginresponse = session.post(loginurl,data=postdata,headers=headers)

#打印服务器端响应信息(知乎登录成功的response信息是json形式,单纯.text有乱码)

print(loginresponse.json())

这里仅以手机号登录为例,邮箱登录,道理一样!

人生苦短,我用python!

编程改变生活!

请关注头条号:中玉科技

标签: #python框架模拟登录