欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

使用requests登陆古诗词网

发布时间:2024/1/1 39 豆豆
生活随笔 收集整理的这篇文章主要介绍了 使用requests登陆古诗词网 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

使用requests登陆古诗词网

# _*_ coding : utf-8 _*_ # @Time : 2023/2/8 16:50 # @Author : 李阶熊 # @File : 登陆古诗文网 # @Project : pythonProject# 通过登陆 然后进入到主页面# 通过找登陆接口我们发现 登陆的时候需要的参数很多 # __VIEWSTATE: uqM36LtLMHmQ0luwdxuoucqroaZOwCfJ1DXW4DvUOQcMEmtCpWNQXrr+SIsWbY7bYQkAt+fm066xQahnOEeWtJqAuIzGwihNaqpGib5pqTCgnnmo6xkHo8BT8GI3s6oyvKxQ8Qr/HzrYHjm3xi6iP5EITRU= # __VIEWSTATEGENERATOR: C93BE1AE # from: http://so.gushiwen.cn/user/collect.aspx # email: 13469114846 # pwd: sdfdsf # code: ISKU # denglu: 登录# 我们观察到_VIEWSTATE __VIEWSTATEGENERATOR code 是一个可以变化的量# 难点:1、_VIEWSTATE __VIEWSTATEGENERATOR 一般情况看不到的数据 都是再页面的源码中 # 我们观察到这两个数据再页面的源码中 所以我们需要获取页面的源码 然后进行解析就可以获取了 # 2、验证码import requests# 这是登陆页面的url地址 url = 'https://so.gushiwen.cn/user/login.aspx?from=http://so.gushiwen.cn/user/collect.aspx'headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36', }# 获取页面的源码 response = requests.get(url=url, headers=headers) content = response.text# 解析页面源码 然后获取 _VIEWSTATE __VIEWSTATEGENERATORfrom bs4 import BeautifulSoupsoup = BeautifulSoup(content, 'lxml')# 获取__VIEWSTATE viewstate = soup.select('#__VIEWSTATE')[0].attrs.get('value')# 获取__VIEWSTATEGENERATOR viewstate_generator = soup.select('#__VIEWSTATEGENERATOR')[0].attrs.get('value')# 获取验证码图片code = soup.select('#imgCode')[0].attrs.get('src') code_url = 'https://so.gushiwen.cn' + code# 有坑 # import urllib.request # # urllib.request.urlretrieve(url=code_url, filename='code.jpg')# requests里面有一个方法 session() 通过session的返回值就能使请求变成一个对象session = requests.session()# 验证码的url的内容 response_code = session.get(code_url)content_code = response_code.content# wb的模式就是将二进制数据写入到文件 with open('code.jpg', 'wb') as fp:fp.write(content_code)# 获取验证码图片之后 下载到本地 然后观察验证码 然后在控制台输入这个验证码 就可以将这个值 code_name = input('请输入你的验证码')# 点击登陆 url_post = 'https://so.gushiwen.cn/user/login.aspx?from=http%3a%2f%2fso.gushiwen.cn%2fuser%2fcollect.aspx'data_post = {'__VIEWSTATE': viewstate,'__VIEWSTATEGENERATOR': viewstate_generator,'from': 'http://so.gushiwen.cn/user/collect.aspx','email': '13469114846','pwd': 'iL@11031103','code': code_name,'denglu': '登录' }response_post = session.post(url=url_post, headers=headers, data=data_post)content_post = response_post.textwith open('guzhichiwang.html', 'w', encoding='utf-8') as fp:fp.write(content_post)

难点

1:隐藏域

2:验证码

总结

以上是生活随笔为你收集整理的使用requests登陆古诗词网的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。