在爬虫过程中决定你爬虫程序速度快慢,数据获取量多少有两大重要因素,那就是随机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
最后大家可以通过这个网站测试代理是否使用成功。
若有收获,就点个赞吧