2021-12-03 16:05

在爬虫过程中决定你爬虫程序速度快慢,数据获取量多少有两大重要因素,那就是随机ua和代理ip的使用。今天着重介绍下这两个要素的重要性。

一、爬虫程序为何要设置User Agent

我们都知道有一些网站不喜欢被爬虫程序访问,所以会有检测机制,如果检测到非人点击访问,它就会阻止你,程序要想继续正常运行,就需要隐藏自己的爬虫程序的身份。此时,我们就可以通过设置User Agent的来达到隐藏身份的目的,User Agent的中文名为用户代理,简称UA。User Agent存放于Headers中,服务器就是通过查看Headers中的User Agent来判断是谁在访问, Python允许我们修改这个User Agent来模拟浏览器访问,它的强大毋庸置疑。

二、为什么要使用代理ip

如果我们的程序User Agent已经设置好了,但是还应该考虑一个问题,程序的运行速度是很快的,我们获取数据不可能使用一个ip频繁的去访问,这就很明显是非人为操作。最好的解决方法就是使用的代理,用很多的ip去模拟人的操作达到我们的目的。代理ip的获取其实很简单,网上有很多提供代理的,像亿牛云、、、、关于随机ua和代理的使用方式参考下面代码:

#! -*- 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

最后大家可以通过这个网站测试代理是否使用成功


评论