随笔 - 82  文章 - 2 评论 - 1 阅读 - 29061
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

为何要设置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   小橙子11  阅读(200)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端
点击右上角即可分享
微信分享提示