对于python爬虫来说,大多人听起来是比较陌生的,但是对于一些专业人来说,对其了解还是比较的深刻的。但是,也会遇到一些问题,比如我们在使用爬虫爬取的时候,如果遇到对方设置了一些爬虫限制,那么爬起来就比较的麻烦了。那么,遇到代理ip问题的话,要怎么去解决呢?下面就给大家详细解答下。
主要内容:代理ip使用原理,怎么在自己的爬虫里设置代理ip,怎么知道代理ip是否生效,没生效的话哪里出了问题,个人使用的代理ip(付费)。
代理ip原理
输入网址后发生了什么呢?
1.浏览器获取域名
2.通过DNS协议获取域名对应服务器的ip地址
3.浏览器和对应的服务器通过三次握手建立TCP连接
4.浏览器通过HTTP协议向服务器发送数据请求
5.服务器将查询结果返回给浏览器
6.四次挥手释放TCP连接
7.浏览器渲染结果
其中涉及到了:
应用层:HTTP和DNS
传输层:TCP UDP
网络层:IP ICMP ARP
代理ip做了什么呢?
简单来说,就是:
原本你的访问
使用代理后你的访问
为什么要用代理呢?
因为我们在做爬虫的过程中经常会遇到这样的情况,最初爬虫正常运行,正常抓取数据,一切看起来都是那么美好,然而一杯茶的功夫可能就会出现错误,比如403 Forbidden,这时候打开网页一看,可能会看到“您的IP访问频率太高”这样的提示。出现这种现象的原因是网站采取了一些反爬虫措施。比如,服务器会检测某个IP在单位时间内的请求次数,如果超过了这个阈值,就会直接拒绝服务,返回一些错误信息,这种情况可以称为封IP。而代理ip就避免了这个问题:
爬虫代码中使用代理ip
就像是请求时伪装头一样,伪装ip,注意是{}
proxies={ 'https':'117.29.228.43:64257', 'http':'117.29.228.43:64257' } requests.get(url,headers=head,proxies=proxies,timeout=3)#proxies
检验代理ip是否生效
我们访问一个网站,这个网站会返回我们的ip地址:
print(requests.get('http://httpbin.org/ip',proxies=proxies,timeout=3).text)
我们看一下我使用了四个不同的代理ip,全部生效了,
未生效问题排查
如果你返回的还是本机地址,99%试一下两种情况之一:
1.请求协议不匹配
简单来说就是,如果你请求的是http,就要用http的协议,如果是https,就要用https的协议。
如果我请求是http,但只有https,就会使用本机ip。
2.代理失效
便宜没好货,好货不便宜。如果确实大规模爬虫是必须的话,还是买代理ip比较好,网上广告满天飞的某些代理实际性价比有些低了,自己常用的就不分享了,总是被当成广告,推荐一些其他的比如:
1、IPIDEA
2、Stormproxies
3、YourPrivateProxy
4、GeoSurf
当然还有大家熟知的快代理,西刺等等,都有一些免费代理可供使用。
总结
到此为止,这篇文章就给大家介绍到这里了,希望可以给大家带来帮助。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/128253.html
摘要:背景分析至此,下一步要解决的问题就是完成一次独立的请求,并解析得到目标数据。上方地址栏的网址是请求的入口,中间圆角方框中的格式天津则是请求参数。当我看到中的天津时,非常开心,因为我找到了请求的入口。 概要 背景描述 网站和http请求分析 IP受限的问题 1. 背景描述 大为软件公司于2001年9月在保定国家高新技术产业开发区注册,公司致力于中国、日本知识产权软件的研究开发,立志成...
摘要:学习网络爬虫主要分个大的版块抓取,分析,存储另外,比较常用的爬虫框架,这里最后也详细介绍一下。网络爬虫要做的,简单来说,就是实现浏览器的功能。 Python学习网络爬虫主要分3个大的版块:抓取,分析,存储 另外,比较常用的爬虫框架Scrapy,这里最后也详细介绍一下。 首先列举一下本人总结的相关文章,这些覆盖了入门网络爬虫需要的基本概念和技巧:宁哥的小站-网络爬虫,当我们在浏览器中输入...
摘要:总的来说有两种反爬策略,要么验证身份,把虫子踩死在门口要么在网站植入各种反爬机制,让爬虫知难而退。本节内容就着这两种反爬策略提出一些对策。内嵌反爬很灵活,没有什么固定的代码格式,要花时间去分析出来。 之前提到过,有些网站是防爬虫的。其实事实是,凡是有一定规模的网站,大公司的网站,或是盈利性质比较强的网站,都是有高级的防爬措施的。总的来说有两种反爬策略,要么验证身份,把虫子踩死在门口...
摘要:使用中间件本次的测试站点依旧使用,通过访问可以获取当前请求的地址。中间件默认是开启的,可以查看其源码重点为方法。修改代理的方式非常简单,只需要在请求创建的时候,增加参数即可。接下来将可用的代理保存到文件中。同步修改文件中的代码。 ...
摘要:前言本文记录自己在学习当中遇到的各种大小问题,持续更新。错误分析本身是一个网络引擎框架,的运行依赖于。在打开新建的项目后,报错显示。错误分析的默认依赖项当中没有,或者说默认查找的路径中找不到。 前言 本文记录自己在学习scrapy当中遇到的各种大小问题,持续更新。 环境简介: 语言版本 爬虫框架 IDE 系统 python3.5 scrapy1.4.0 pycharm win1...
阅读 910·2023-01-14 11:38
阅读 877·2023-01-14 11:04
阅读 739·2023-01-14 10:48
阅读 1980·2023-01-14 10:34
阅读 941·2023-01-14 10:24
阅读 818·2023-01-14 10:18
阅读 498·2023-01-14 10:09
阅读 571·2023-01-14 10:02