目标网站反爬策略之随机ua的添加
为何要设置User Agent?
作为爬虫我们都知道,很多网站是做了反爬策略的,特别是爬虫程序这样的非人点击访问,网站更不会让你继续访问,这时我们的应对策略就是需要隐藏自己的爬虫程序的身份。我们就可以通过设置User Agent的来达到隐藏身份的目的,User Agent的中文名为用户代理,简称UA。
User Agent存放于Headers中,服务器就是通过查看Headers中的User Agent来判断是谁在访问。在Python中,如果不设置User Agent,程序将使用默认的参数,那么这个User Agent就会有Python的字样,如果服务器检查User Agent,那么没有设置User Agent的Python程序将无法正常访问网站。Python允许我们修改这个User Agent来模拟浏览器访问,所以他的重要性可想而知,常见的ua有pc端,Android和ios.
虽然有了ua但是也不能直接就去访问目标网站,还是需要有代理的辅助,因为一个固定IP的访问目标网站的频率很高,这不符合人为操作的标准,所以一些网站会设置一个IP访问频率的阈值,如果一个IP访问频率超过这个阈值,就会被限制。代理的选择有很多,这里就以我经常使用的亿牛云为例。
1、Python¶
requests
#! -*- encoding:utf-8 -*-
import requests
import random
# 要访问的目标页面
targetUrl = http://httpbin.org/ip
# 要访问的目标HTTPS页面
# targetUrl = https://httpbin.org/ip
# 代理服务器
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以上是python的代理添加示例,当然其他的爬虫程序语言也是可以使用代理的,有其他语言需求的伙伴可以去了解下,https://www.16yun.cn/help/ss_demo/。
目标网站反爬策略之随机ua的添加
xiaotaomi
会员积分:7320
为何要设置User Agent?
作为爬虫我们都知道,很多网站是做了反爬策略的,特别是爬虫程序这样的非人点击访问,网站更不会让你继续访问,这时我们的应对策略就是需要隐藏自己的爬虫程序的身份。我们就可以通过设置User Agent的来达到隐藏身份的目的,User Agent的中文名为用户代理,简称UA。
User Agent存放于Headers中,服务器就是通过查看Headers中的User Agent来判断是谁在访问。在Python中,如果不设置User Agent,程序将使用默认的参数,那么这个User Agent就会有Python的字样,如果服务器检查User Agent,那么没有设置User Agent的Python程序将无法正常访问网站。Python允许我们修改这个User Agent来模拟浏览器访问,所以他的重要性可想而知,常见的ua有pc端,Android和ios.
虽然有了ua但是也不能直接就去访问目标网站,还是需要有代理的辅助,因为一个固定IP的访问目标网站的频率很高,这不符合人为操作的标准,所以一些网站会设置一个IP访问频率的阈值,如果一个IP访问频率超过这个阈值,就会被限制。代理的选择有很多,这里就以我经常使用的亿牛云为例。
1、Python¶
requests
#! -*- encoding:utf-8 -*-
import requests
import random
# 要访问的目标页面
targetUrl = http://httpbin.org/ip
# 要访问的目标HTTPS页面
# targetUrl = https://httpbin.org/ip
# 代理服务器
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以上是python的代理添加示例,当然其他的爬虫程序语言也是可以使用代理的,有其他语言需求的伙伴可以去了解下,https://www.16yun.cn/help/ss_demo/。

21-10-26 16:14

1434

0
回复
暂无评论