模拟登录
模拟登陆是什么鬼?
有些时候,我们在爬取某些网站内容的时候,网站要求登录后才能操作..,但是处理验证码;
模拟登陆的流程
- 对登录页面进行请求,从请求的页面源码中解析下载验证码图片
- 使用打码平台对验证码进行识别
- 基于登录按钮发起一个post请求(处理参数)
模拟登录的意义和作用
爬取基于某些用户的用户信息,获取cookie
验证码识别
三方工具:云打码平台--->识别验证码种类比较全,无法处理滑动验证码.
云打码平台
使用流程如下:
#使用流程 1.注册 2.登录 - 普通用户 --->查询剩余题分(可充值) - 开发者用户 创建软件:我的软件-》添加新软件(ID,秘钥) 下载示例代码:开发文档-》点此下载:云打码接口DLL-》PythonHTTP示例下载
Cookies的应用和处理
cookies : 服务端记录客户端的状态
处理cookies的方式
手动处理 : 不建议,(通用性不强,有些验证码动态生成)
自动处理 : 会话对象Session,该对象可以像requests一样进行网络请求发送(get,post),session进行的请求发送可以自动携带和处理cookie.
使用requests模块和session对象的区别
session会携带参数进行请求,而requests不会.
代理ip
1.为什么使用代理 ?
访问频率过高,导致ip被封禁,因此要使用代理.
2.常见代理服务器 有哪些?
快代理 西祠代理 goubanjia
3. 匿名度
- 透明:对方服务器知道你的使用了代理ip,也知道你的真实ip
- 匿名:知道你使用了代理ip但是不知道你的真实ip
- 高匿:什么都不知道
4.请求类型类型
#两种http和https - http:只可以发起http请求 - https:只可以发起https的请求
5.应用场景
#代理ip的应用 -->proxies参数 提供字典键值对http/https 代理ip地址即可 url = 'http://www.baidu.com/s?wd=ip' page_text = requests.get(url=url,headers=headers,proxies={'http':'117.127.0.202:80'}).text with open('./ip.html','w',encoding='utf-8') as fp: fp.write(page_text) print('完成')
6.为什么要应用代理池?
为了应用更多的代理ip,增加效率