proxy代理参数通过指定代理ip,让代理ip对应的正向代理服务器转发我们发送的请求,那么我们首先来了解一下代理ip以及代理服务器
前边提到proxy参数指定的代理ip指向的是正向的代理服务器,那么相应的就有反向服务器;现在来了解一下正向代理服务器和反向代理服务器的区别
正向代理:对于浏览器知道服务器的真实地址,例如vpn(虚拟专用网络)
反向代理:浏览器不知道服务器的真实地址,例如nginx(一个高性能的HTTP和反向代理web服务器)
根据代理ip的匿名程度,代理IP可以分为下面三类:
透明代理(Transparent Proxy):透明代理虽然可以直接“隐藏”你的IP地址,但是还是可以查到你是谁。目标服务器接收到的请求头如下:
匿名代理(Anonymous Proxy):使用匿名代理,别人只能知道你用了代理,无法知道你是谁。目标服务器接收到的请求头如下:
高匿代理(Elite proxy或High Anonymity Proxy):高匿代理让别人根本无法发现你是在用代理,所以是最好的选择。毫无疑问使用高匿代理效果最好。目标服务器接收到的请求头如下:
4 .混淆代理:以上代理结合使用,真真假假
根据网站所使用的协议不同,需要使用相应协议的代理服务。从代理服务请求使用的协议可以分为:
为了让服务器以为不是同一个客户端在请求;为了防止频繁向一个域名发送请求被封ip,所以我们需要使用代理ip;让服务器以为不是同一个客户在请求,防止我们的真实地址被泄露,防止被追究
用法:
proxies的形式:字典
例如:
注意:如果proxies字典中包含有多个键值对,发送请求时将按照url地址的协议来选择使用相应的代理ip
运行下面的代码将会抛出包含字样的异常
为了在代码中能够正常的请求,我们使用参数,此时requests模块发送请求将不做CA证书的验证:verify参数能够忽略CA证书的认证
思考:哪些地方我们会用到POST请求?
- 登录注册( 在web工程师看来POST 比 GET 更安全,url地址中不会暴露用户的账号密码等信息)
- 需要传输大文本内容的时候( POST 请求对数据长度没有要求)
所以同样的,我们的爬虫也需要在这两个地方回去模拟浏览器发送post请求
下面面我们通过有道翻译的例子看看post请求如何使用:
地址:https://fanyi.baidu.com/translate
抓包确定请求的url地址
确定请求的参数
确定返回数据的位置
模拟浏览器获取数据
url地址:https://fanyi.baidu.com/v2transapi?from=zh&to=en
请求方法:POST
请求所需参数:
pc端User-Agent:
了解requests模块发送post请求的方法,以及分析过移动端的百度翻译之后,我们来完成代码
requests模块中的Session类能够自动处理发送请求获取响应过程中产生的cookie,进而达到状态保持的目的。接下来我们就来学习它
session实例在请求了一个网站后,对方服务器设置在本地的cookie会保存在session中,下一次再使用session请求对方服务器的时候,会带上前一次的cookie
使用requests.session来完成github登陆,并获取需要登陆后才能访问的页面
安装:pip3 install requests-html
如果把requests比喻成人工刨地的工具,那么requests_html就是开拖拉机刨地
中文文档:https://cncert.github.io/requests-html-doc-cn/#/
更多用法:https://www.jianshu.com/p/dd234efeac3a
官方文档:http://html.python-requests.org
Requests是模拟HTTP的测试库,但是Requests只负责网络请求,不会对响应结果进行解析。而该库的作者后来基于现有的框架进行二次封装,又发布了一个更好用的Requests-html库用于解析HTML。(该库最早发现于2018年7月(谷歌提供),只支持python3.6及以上版本)
request-html的牛逼之处:它集成了request库,beautifulsoup库,pyquery库,浏览器内核
Requests-html****具有以下特性
若,我们需要获取某个网页的源码,使用html方法即可
除了以上的操作外,response的操作属性还可以和requests的请求响应的response属性通用
本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕,E-mail:xinmeigg88@163.com
本文链接:http://hn3.tttmy.cn/news/11039.html