爬虫-IP被封解决办法

方法1.

之前由于公司项目需要,采集过google地图数据,还有一些大型网站数据。

经验如下:
1.IP必须需要,像@alswl 说的非常正确,ADSL。如果有条件,其实可以跟机房多申请外网IP。
2.在有外网IP的机器上,部署代理服务器。
3.你的程序,使用轮训替换代理服务器来访问想要采集的网站。

好处:
1.程序逻辑变化小,只需要代理功能。
2.根据对方网站屏蔽规则不同,你只需要添加更多的代理就行了。

3.就算具体IP被屏蔽了,你可以直接把代理服务器下线就OK,程序逻辑不需要变化。

方法2.

有小部分网站的防范措施比较弱,可以伪装下IP,修改X-Forwarded-for(貌似这么拼。。。)即可绕过。

大部分网站么,如果要频繁抓取,一般还是要多IP。我比较喜欢的解决方案是国外VPS再配多IP,通过默认网关切换来实现IP切换,比HTTP代理高效得多,估计也比多数情况下的ADSL切换更高效。

方法3.

  • ADSL + 脚本,监测是否被封,然后不断切换 ip
  • 设置查询频率限制

正统的做法是调用该网站提供的服务接口。

方法4.

8年多爬虫经验的人告诉你,国内ADSL是王道,多申请些线路,分布在多个不同的电信区局,能跨省跨市更好,自己写好断线重拨组件,自己写动态IP追踪服务,远程硬件重置(主要针对ADSL猫,防止其宕机),其余的任务分配,数据回收,都不是大问题。我的已经稳定运行了好几年了,妥妥的!

方法5.

1 user agent 伪装和轮换
2 使用代理 ip 和轮换
3 cookies 的处理,有的网站对登陆用户政策宽松些

友情提示:考虑爬虫给人家网站带来的负担,be a responsible crawler :)

方法6.

尽可能的模拟用户行为:
1、UserAgent经常换一换;
2、访问时间间隔设长一点,访问时间设置为随机数;
3、访问页面的顺序也可以随机着来

方法8.

网站封的依据一般是单位时间内特定IP的访问次数.
我是将采集的任务按 目标站点的IP进行分组 通过控制每个IP 在单位时间内发出任务的个数,来避免被封.当然,这个前题是你采集很多网站.如果只是采集一个网站,那么只能通过多外部IP的方式来实现了.

方法9.

1. 对爬虫抓取进行压力控制;
2. 可以考虑使用代理的方式访问目标站点。

-降低抓取频率,时间设置长一些,访问时间采用随机数
-频繁切换UserAgent(模拟浏览器访问)
-多页面数据,随机访问然后抓取数据
-更换用户IP

知识点:

  0.检测是否是高匿代理 http://httpbin.org/ip, 一个为匿名代理, 多个为透明代理

  1.使用代理IP

s = requests.Session()
s.proxies = {
    "http": "http://username:[email protected]:9000",
    "http": "http://username:[email protected]:9000"
}

  2.使用adsl

  3.vps多IP

  4.使用squid维护连接池(keep-alive),避免多次连接,附带数据缓存功能

时间: 2024-09-30 19:16:22

爬虫-IP被封解决办法的相关文章

爬虫数据-IP被封解决办法--飞速云科技

方法1. 之前由于公司项目需要,采集过google地图数据,还有一些大型网站数据. 经验如下:1.IP必须需要,比如ADSL.如果有条件,其实可以跟机房多申请外网IP.2.在有外网IP的机器上,部署代理服务器.3.你的程序,使用轮训替换代理服务器来访问想要采集的网站. 好处:1.程序逻辑变化小,只需要代理功能.2.根据对方网站屏蔽规则不同,你只需要添加更多的代理就行了.3.就算具体IP被屏蔽了,你可以直接把代理服务器下线就OK,程序逻辑不需要变化. 方法2. 有小部分网站的防范措施比较弱,可以伪

GNS3上PC通过DHCP无法获得IP地址的解决办法

问题描述:楼主在使用GNS3做DHCP实验时,发现用路由器模拟PC,配置完DHCP服务器后部分vlan 下的PC总是获取不了ip地址:DHCP的配置.vlan.trunk allow vlan.配置都是对的.反复检查无果,以下是实验拓扑: 最后我又仔细检查了一边,发现是3层交换下static mac-address table的问题,使用clear mac-address-table static 完美获取地址.我整理了几条排错思路,欢迎大家参考以及踊跃补充: 关于在GNS3上PC无法从DHCP

爬虫ip被封的6个解决方法

在爬虫工作中,我们不可避免的会遇到网页的反爬封锁,所以就有了爬虫的***,在攻和守之间两股力量不断的抗衡.接下来就讲讲使用爬虫时ip限制问题的六种方法! 方法1. 1.IP必须需要,如果有条件,建议一定要使用代理IP. 2.在有外网IP的机器上,部署爬虫代理服务器. 3.你的程序,使用轮训替换代理服务器来访问想要采集的网站. 好处: 1.程序逻辑变化小,只需要代理功能. 2.根据对方网站屏蔽规则不同,你只需要添加更多的代理就行了. 3.就算具体IP被屏蔽了,你可以直接把代理服务器下线就OK,程序

在阿里云上部署的node服务器不能通过公网IP访问的解决办法

首先,如果小伙伴有自己的node项目,在本地使用localhost/127.0.0.1 访问是没有任何问题的,然后部署到阿里云ECS实例上以后,通过公网IP加端口却不能访问了,可以继续往下看: 1.阿里云 ECS 实例 阿里云 ECS 实例就是在阿里云上购买的一台云服务器,然后可以上传代码,实现将自己的网站或者博客系统放置在公网上,以为需要的人提供帮助. 而阿里云却对自己的服务器实例出于对安全的考虑做了一些限制,其中限制端口,就是导致这次讨论的问题产生的根源. 2.登录阿里云实例的后台管理系统

虚拟机克隆系统无法看到ip地址的解决办法

1.编辑eth0的配置文件:vi /etc/sysconfig/network-scripts/ifcfg-eth0,删除硬件地址那一行:把网卡改名为eth12.编辑/etc/sysconfig/network文件,修改主机名: 3.重启:reboot.

Linux 网络配置,ifconfig不显示ip地址的解决办法

进入到/etc/sysconfig/network-scripts 然后设置虚拟机的网络配置 这样就配置成功了

HTTP中ip地址伪造的问题以及解决办法

在真实环境下,php获取客户端ip地址的方法通常有以下几种: (1):通过$_SERVER[ "HTTP_CLIENT_IP" ] (2):通过$_SERVER[ "HTTP_X_FORWARDED_FOR" ] (3):通过$_SERVER[ "REMOTE_ADDR" ] 这里需要注意的是:在php中的$_SERVER数组中以HTTP开头的值,都是由客户端(client)传递到服务端的,也就是说这一部分是可以进行伪造的.而$_SERVER[

树莓派学习(一)——树莓派安装系统的过程、问题及解决办法

前言-- 买了两三周的树莓派,现在才把树莓派安装配置好系统,真的是想抽自己两耳巴子.不过这个月实在太忙了,又是实习,又是忙着毕业杂事,心里颇不宁静.这两天周末,又重新捣鼓了一下树莓派,准备记录一下在树莓派上安装系统的过程和心得. 注:本人使用的树莓派型号为:Raspberry Pi 3 B+ 正文-- 一.简介 1.树莓派是什么?Raspberry Pi(中文名为"树莓派",简写为RPi,或者RasPi/RPi)是为学生计算机编程教育而设计,只有信用卡大小的卡片式电脑,其系统基于Lin

爬虫速度优化、Python多线程、adsl拨号解决ip被封问题

爬虫速度优化 优化硬盘存储:每个网页大概多大,加起来以后会有多大,需不需要压缩存储 优化内存,url去重:减少所有url放在一起去重时,内存不够用情况,使用bloomFilter算法,查询效率高 反抓取访问频率限制: 研究网站的反爬策略 多ip抓取:IP代理池和adsl拨号 IP代理池:比较贵 ADSL拨号:便宜,但速度可能稍微慢一些 网络性能,抓取技术细节调优 开多个线程,探索多长时间/多少频率切换拨号ip最优: 需要对网站的反爬策略进行测试.先开一个线程,一直抓到ip被屏蔽,记录下抓取耗时,