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







待会儿见
K哥馆
mayun
文鼎_应老师
课课家运营团队
liangchsh
启程软考
