目标网站反爬策略之随机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
会员积分:6520
为何要设置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
1107
0
回复
暂无评论