• 动态秒换IP服务器,让爬虫运行更加顺利!

    一、前言 一般而言,抓取稍微正规一点的网站,都会有反网络爬虫的制约。反网络爬虫主要有以下几种方式: 根据UA判断。这是最低级的判断,一般反网络爬虫不会用这个做唯一判断,因为反反网络爬虫非常容易,直接随机UA即可解决。 根据单IP频繁访问判断。这个判断简单,而且反反网络爬虫比较费力,反网络爬虫绝佳方案。需采用多IP抓取。 根据Cookie判断,例如根据会员制账号密码登陆,判断单账号短时间抓取次数判断。这个反反网络爬虫也很费力。需采用多账号抓取。 动态页面加载。这个考验前端工程师的功底,假如前端写的好,各种JS判断,各种逻辑,像百度,淘宝一样,post登录很难。较好的方法,但是对于大牛,还是防不胜防。反反网络爬虫多采用渲染浏览器抓取,效率低下。 采用验证码。这里要不是登录的时候有验证码,要不是判断是网络爬虫时,不封IP,而是采用验证码验证,例如链家网。验证码是反网络爬虫性价比较高的方案。反反网络爬虫一般接入OCR验证码识别平台或是人工打码平台,亦或是利用Tesseract OCR识别,亦或是采用神经网络训练识别验证码等。 二、概要 今天咱们先主要来讲一讲,如何应对第2条的反反网络爬虫,如何根据多IP抓取。根据多IP网络爬虫,又分为以下几种形式: 根据ADSL拨号换IP服务器。每拨一次就会有一个新IP,较好解决IP单一问题。 假如是局域网,带路由器的,第一种方法可能不好用。这个时候可以模拟登陆路由器,控制路由器重新拨号,换IP,这其实是一种折中的办法,曲线救国。 代理IP,利用购买的或是网上抓取的免费代理IP,实现多IP网络爬虫。 分布式网络爬虫。采用多个服务器,多个IP,多个slave网络爬虫同时运行,由master负责调度。效率较高,属于大型分布式抓取,一般用redis分布式抓取,不表。 最近了解到一种新的加密的代理网络。Tor匿名网络,利用这个也能匿名换IP。这个还没有详细了解,不表。 三、正文 1. ADSL拨号 我一般是在windows平台ADSL拨号,其他平台暂时没用过。windows平台拨号,我一般用python的代码为:   2. 路由器拨号 假如是局域网,带路由器的。直接调用windows的rasdial命令无法拨号时,这个时候可以模拟登陆路由器,控制路由器重新拨号,换IP,这其实是一种折中的办法,曲线救国。下面以登录小米路由器示例:   利用这个方法,就实现了用路由器换IP的目的。该方法的缺陷也是很明显的。就是不像第一种方法那样通用。基本上一个路由器就得编一套代码,属于定制代码。 3. 代理IP 代理IP是最常见的一种多IP网络爬虫方法。在请求Headers中加入代理IP地址,即可实现代理IP抓取。缺陷是爬取速度和代理IP的速度息息相关。而且好的IP费用较高,免费的速度普遍不高。 附上requests抓取携带代理IP和selenium抓取携带代理IP的代码。 requests: selenium: 四、尾言 本文主要讲了反网络爬虫的一些概念,常用的方法,反反网络爬虫的一些方法,并且主要介绍了多IP网络爬虫的实现方式,属于网络爬虫领域基础内容。掌握了这些基础内容,以后网络爬虫步伐才能迈得坚实。 MMCloud提供动态拨号vps、动态IP拨号、动态vps、动态IP拨号服务器、动态秒换IP、ADSL拨号服务器等,有大陆、美国、香港、日本、韩国、菲律宾、新加坡等!适用于网络营销、数据抓取、数据分析、刷单、投票等领域。需要的朋友请联系MMCloud客服!

    2021.12.21 浏览:48
  • python爬虫ip代理服务器的简要思路

    python爬虫有的时候会遇到被禁ip的情况,这个时候你可以找一下代理网站,抓取一下ip,来进行动态的轮询就没问题了,也可以用别人做好的第三方ip代理平台,比如说crawlera,crawlera是一个利用代理IP地址池来做分布式下载的第三方平台,除了scrapy可以用以外,普通的java、php、python等都可以通过curl的方式来调用 如果不使用第三方的平台做代理ip,我们就必须得手动抓取ip了,可以google搜索代理ip,可以找到一大堆网站,找几个稳定的代理网站,可以写一个爬虫脚本持续抓取,要是使用量不大的话,也可以手动粘贴抓取,要是土豪一点呢就买一点其实也可以,大概1块钱可以买几千个,还是挺值得的。 这时候如果你使用的是python,你需要自己维护一个ip池,控制每个ip的访问次数,随机更换ip什么的,但是如果你想做成服务化,你可以使用Squid绑定多个ip地址,做正向代理,Squid是一种在Linux系统下使用的比较优秀的代理服务器软件,把代理列表的代理ip,按照squid的cache_peer机制按照一定格式,写在配置文件中即可。 这个就相当于将管理和调度的问题全交给了squid来做,你只需要使用爬虫访问squid的服务端口就可以了。 现在可以将所有步骤归纳总结一下: 1.利用爬虫脚本每天定时抓取代理网站上的免费ip,或者买一定数量的ip,写入mongodb或者其他的数据库中,这张表作为原始表。 2.使用之前需要做一步测试,就是测试这个ip是否有效,方法就是利用curl访问一个网站查看返回值,需要创建一张新表,循环读取原始表有效则插入,验证之后将其从原始表中删除,验证的同时可以利用响应时间来计算这个ip的质量,和最大使用次数,有一个算法可以参考一种基于连接代理优化管理的多线程网络爬虫处理方法。 3.将有效的ip写入squid的配置文件,重新加载配置文件。 4.让爬虫程序去指定的squid的服务ip和端口,进行抓取。 MMCloud专业提供python爬虫ip代理服务器;十五年的IDC行业服务经验;拥有全球超过120个国家地区的数据中心! MMCloudIDC提供香港服务器、美国服务器等全球海外服务器租用托管,是采集、智能家居、安防、视频、物联网、区域链、直销、流媒体、外贸、游戏、电商等服务器解决方案首选品牌。

    2021.12.21 浏览:34