继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

解决目标网站封爬虫的3步方法

专业爬虫
关注TA
已关注
手记 34
粉丝 9
获赞 17

作为爬虫工作者,在我们日常获取数据的过程中难免发生ip被封和403错误等等,这都是网站检测出你是爬虫而进行反爬措施,所以今天在这里为大家总结一下怎么用IP代理防止被封的方法。

1、设置等待时间,种是显性等待时间(强制停几秒),一种是隐性等待时间。

2、修改请求头:识别你是机器人还是人类浏览器浏览的重要依据就是User-Agent。

3、采用代理ip/建代理ip池,直接看代码。利用动态ip代理,可以强有力地保障爬虫不会被封,能够正常运行。以下为使用代理ip的实际示例,在使用IP量上需要看自己的需求,大型项目是必须用大量ip的。

#! -*- encoding:utf-8 -*-

    import requests
    import random

    # 要访问的目标页面
    targetUrl = "http://httpbin.org/ip"

    # 要访问的目标HTTPS页面
    # targetUrl = "https://httpbin.org/ip"

    # 代理服务器(产品官网 www.16yun.cn)
    proxyHost = "t.16yun.cn"
    proxyPort = "31111"

    # 代理验证信息
    proxyUser = "username"
    proxyPass = "password"

    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

只有我们在采集数据过程中做好以上3个步骤,大致爬虫的运行就不成问题了。但是这些都是基本的反爬措施,现在有很多大型网站做设置的反爬机制更严,对技术要求更高,所以需要我们随时学习更深的爬虫技术。


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP