资讯专栏INFORMATION COLUMN

python爬虫代理ip解决办法

89542767 / 551人阅读

  对于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做了什么呢?


  简单来说,就是:


  原本你的访问

01.png

  使用代理后你的访问

02.png

  为什么要用代理呢?


  因为我们在做爬虫的过程中经常会遇到这样的情况,最初爬虫正常运行,正常抓取数据,一切看起来都是那么美好,然而一杯茶的功夫可能就会出现错误,比如403 Forbidden,这时候打开网页一看,可能会看到“您的IP访问频率太高”这样的提示。出现这种现象的原因是网站采取了一些反爬虫措施。比如,服务器会检测某个IP在单位时间内的请求次数,如果超过了这个阈值,就会直接拒绝服务,返回一些错误信息,这种情况可以称为封IP。而代理ip就避免了这个问题:

03.png

  爬虫代码中使用代理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,全部生效了,

04.png

  未生效问题排查


  如果你返回的还是本机地址,99%试一下两种情况之一:


  1.请求协议不匹配


  简单来说就是,如果你请求的是http,就要用http的协议,如果是https,就要用https的协议。

05.png

  如果我请求是http,但只有https,就会使用本机ip。


  2.代理失效


  便宜没好货,好货不便宜。如果确实大规模爬虫是必须的话,还是买代理ip比较好,网上广告满天飞的某些代理实际性价比有些低了,自己常用的就不分享了,总是被当成广告,推荐一些其他的比如:


  1、IPIDEA


  2、Stormproxies


  3、YourPrivateProxy


  4、GeoSurf


  当然还有大家熟知的快代理,西刺等等,都有一些免费代理可供使用。


  总结


  到此为止,这篇文章就给大家介绍到这里了,希望可以给大家带来帮助。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/128253.html

相关文章

  • python抓一点数据回来

    摘要:背景分析至此,下一步要解决的问题就是完成一次独立的请求,并解析得到目标数据。上方地址栏的网址是请求的入口,中间圆角方框中的格式天津则是请求参数。当我看到中的天津时,非常开心,因为我找到了请求的入口。 概要 背景描述 网站和http请求分析 IP受限的问题 1. 背景描述 大为软件公司于2001年9月在保定国家高新技术产业开发区注册,公司致力于中国、日本知识产权软件的研究开发,立志成...

    snifes 评论0 收藏0
  • Python入门网络爬虫之精华版

    摘要:学习网络爬虫主要分个大的版块抓取,分析,存储另外,比较常用的爬虫框架,这里最后也详细介绍一下。网络爬虫要做的,简单来说,就是实现浏览器的功能。 Python学习网络爬虫主要分3个大的版块:抓取,分析,存储 另外,比较常用的爬虫框架Scrapy,这里最后也详细介绍一下。 首先列举一下本人总结的相关文章,这些覆盖了入门网络爬虫需要的基本概念和技巧:宁哥的小站-网络爬虫,当我们在浏览器中输入...

    Bmob 评论0 收藏0
  • Python 从零开始爬虫(一)——爬虫伪装&反“反爬”

    摘要:总的来说有两种反爬策略,要么验证身份,把虫子踩死在门口要么在网站植入各种反爬机制,让爬虫知难而退。本节内容就着这两种反爬策略提出一些对策。内嵌反爬很灵活,没有什么固定的代码格式,要花时间去分析出来。   之前提到过,有些网站是防爬虫的。其实事实是,凡是有一定规模的网站,大公司的网站,或是盈利性质比较强的网站,都是有高级的防爬措施的。总的来说有两种反爬策略,要么验证身份,把虫子踩死在门口...

    int64 评论0 收藏0
  • python scrapy 代理中间件,爬虫必掌握的内容之一

    摘要:使用中间件本次的测试站点依旧使用,通过访问可以获取当前请求的地址。中间件默认是开启的,可以查看其源码重点为方法。修改代理的方式非常简单,只需要在请求创建的时候,增加参数即可。接下来将可用的代理保存到文件中。同步修改文件中的代码。 ...

    binta 评论0 收藏0
  • scrapy 学习之路上的那些坑

    摘要:前言本文记录自己在学习当中遇到的各种大小问题,持续更新。错误分析本身是一个网络引擎框架,的运行依赖于。在打开新建的项目后,报错显示。错误分析的默认依赖项当中没有,或者说默认查找的路径中找不到。 前言 本文记录自己在学习scrapy当中遇到的各种大小问题,持续更新。 环境简介: 语言版本 爬虫框架 IDE 系统 python3.5 scrapy1.4.0 pycharm win1...

    xiaodao 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<