第九课 Python模拟登陆与保持会话
2018-01-04 18:41
302 查看
一、了解与尝试
对于刚入门的同学来说,可能还不清楚,怎么弄,不过相信在前8节课的描述中,大家还是掌握一二,并有所创造了
好了废话不多说,下面看教程:
1.我们首先找到一个有会员登陆的网站,比如一个小网站,还有验证码“第一资源网”
可能有的同学就慌了,这是一个js加载的登录框,爬虫怎么抓取呐???
不要急~
2.打开F12,开发者工具抓包看看登陆的请求链接是什么
抓取的请求链接如下:
登陆请求链接:http://www.dyboy.cn/content/templates/dy_dux//user/reg.php
验证码请求链接:http://www.dyboy.cn/include/lib/checkcode.php
3.第一次尝试coding
得到的结果\u转码后得到:
登录失败,请检查用户名密码&验证码是否正确
我们就注册一个账号后来测试
二、理清思路
a.先获得验证码 b.输入验证码即可登陆
三、实操
最终代码如下:# name: 2018_login.py # author: DYBOY # charset: utf-8 # time: 2018-01-04 import requests import json from PIL import Image from io import BytesIO #注册全局req对象,请求session保持会话(与服务器不中断) req = requests.Session() header = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36"} login_url = "http://www.dyboy.cn/content/templates/dy_dux/user/reg.php" code_url = "http://www.dyboy.cn/include/lib/checkcode.php" #以上作为抓取的基本信息(变量) #下面我们模拟登陆 code_image = req.get(code_url,headers = header,timeout=8) image = Image.open(BytesIO(code_image.content)) image.show()#显示验证码 login_code = input("请输入验证码") login_data = {"username":"********", "password":"********", "imgcode":login_code, "action":"signin", "remember":"forever"} html_result = req.post(login_url,data=login_data,headers=header,timeout=8) print(html_result.text)
运行的效果如下:
返回的结果转码后:
是不是很舒服啊?
作者:小东
博客地址:http://blog.csdn.net/dyboy2017
Github:https://github.com/dyboy2017
版权声明:原创文章,转赞请注明出处超链接
相关文章推荐
- HttpClient 模拟登陆,保持会话并进行后续操作
- (转)HttpClient 模拟登陆,保持会话并进行后续操作
- HttpClient 模拟登陆,保持会话并进行后续操作
- Python实现模拟浏览器请求及会话保持操作示例
- python_程序模拟浏览器请求及会话保持
- python---模拟登陆知乎
- bugzilla4的xmlrpc接口api调用实现分享: xmlrpc + https + cookies + httpclient +bugzilla + java实现加密通信下的xmlrpc接口调用并解决登陆保持会话功能
- Python爬虫之模拟登陆
- python实战系列之模拟用户密码登陆系统(一)
- Mysql Client模拟登陆(Python)
- Python模拟登陆万能法-微博|知乎
- Python模拟登陆:模拟登陆电子科大信息门户测试
- python3 scrapy模拟登陆豆瓣
- Python模拟登陆大连交通大学教务在线
- 使用Python进行模拟登陆
- python模拟登陆和发布信息
- python模拟登陆杂记
- [置顶] 【python 百度指数抓取】python 模拟登陆百度指数,图像识别百度指数
- python 爬虫 教务系统模拟登陆 并下载课表
- python requests添加cookies模拟登陆爬取网页