为了账号安全,请及时绑定邮箱和手机立即绑定

应对网站反爬机制的处理


在大数据如此火的今天,爬虫是其中不可或缺的一部分。作为一位爬虫我们都是知道想要获取数据也不是很容易的事,因为不管大大小小的网站都是做了很多反爬机制来阻碍我们的脚步,但是方法总比困难多。我们今天先来分析下网站都是用过哪些方式来阻止我们的。

1、验证码

2、ua

3、登陆验证

4、封账号

5、加密

6、ip限制

今天我们就重点来讲下网站的ip限制机制,很多网站会根据IP地址访问频率进行反爬,短时间内禁止IP访问,这时我们想采集数据要么使用代理IP,要么伪装ip。那么对于ip我们要怎么解决了?

  • 自己自建ip池,每次访问网站的时候去选择代理,不过需要经常更新代理池。

  • 购买优质代理或动态转发(爬虫代理), 这是最省时省力的方法。

  • 网站抓取免费的ip来使用,虽然可行,但是效果不会很理想。

  • 间隔一定的时间在进行数据采集,但是这会大大的增加我们工作的时长。

以下我们分享下用代理来解决网站封ip的示例,对于“频繁点击”的情况,我们还可以通过限制爬虫访问网站的频率来避免被网站禁掉。

        #! -*- encoding:utf-8 -*-        import requests        import random        # 要访问的目标页面        targetUrl = "http://www.csdn.net"        # 要访问的目标HTTPS页面        # targetUrl = "https://www.csdn.net"        # 代理服务器(产品官网 www.16yun.cn)        proxyHost = "t.16yun.cn"        proxyPort = "31111"        # 代理隧道验证信息        proxyUser = "16JVFLKJ"        proxyPass = "254565"        proxyMeta = "http://%(user)s:%(pass)s@%(host)s:%(port)s" % {            "host" : proxyHost,            "port" : proxyPort,            "user" : proxyUser,            "pass" : proxyPass,        }        # 设置 http和https访问都是用HTTP代理        proxies = {            "http"  : proxyMeta,            "https" : proxyMeta,        }        #  设置IP切换头        tunnel = random.randint(1,10000)        headers = {"Proxy-Tunnel": str(tunnel)}        resp = requests.get(targetUrl, proxies=proxies, headers=headers)        print resp.status_code        print resp.text



点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消