为何要设置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/

posted on 2021-10-26 16:15  小橙子11  阅读(176)  评论(0编辑  收藏  举报