当您在网络浏览器中输入搜索查询时,幕后会发生很多通常被忽视的事情。此过程的一个关键要素是用户代理,它是您的浏览器发送到您访问的每个网站的一条信息。

最简单的形式是,用户代理是一个文本字符串,用于向 Web 服务器标识您的浏览器。虽然这听起来很简单,但理解用户代理如何工作的复杂性可能有点困难。每当您的浏览器连接到网站时,它都会在 HTTP 标头中包含一个用户代理字段。该字段的内容因每个浏览器而异,从而导致不同浏览器的用户代理不同。

本质上,用户代理是浏览器向 Web 服务器介绍自身的一种方式。它类似于网络浏览器对网络服务器说“你好,我是网络浏览器”。 Web 服务器使用此信息来提供针对不同操作系统、网页或 Web 浏览器定制的内容。

本指南深入研究了用户代理的世界,讨论了它们的类型并强调了网络抓取领域中最常见的用户代理的重要性。

用户代理

用户代理是能够为最终用户呈现、交互和检索 Web 内容的软件。此类别包括网络浏览器、媒体播放器、插件等。用户代理系列扩展到消费电子产品、独立应用程序和操作系统外壳。

并非所有软件都符合用户代理的资格;它必须遵守特定的条件。根据 Wiki,如果软件满足以下条件,则可以被视为主要用户代理:

  1. 它作为一个独立的应用程序运行。
  2. 它解释 W3C 语言。
  3. 它解释用于用户界面配置的声明性或过程性语言。

如果软件增强了主要用户代理的功能或由主要用户代理启动,则该软件被归类为用户代理扩展。另一方面,如果软件解释声明性或过程性语言以生成用户界面,则该软件属于基于网络的用户代理类别。在这种情况下,解释可以由用户代理扩展或主用户代理执行,并且用户交互不得修改包含文档的文档对象模型(DOM)。

用户代理在浏览器中的作用

用户代理在网页抓取中的重要性

如前所述,当浏览器与网站建立连接时,HTTP 标头中有一个用户代理字段。该字段的内容因浏览器而异,本质上是浏览器对 Web 服务器的介绍。

Web 服务器可以将此信息用于特定目的。例如,网站可以使用此信息向移动浏览器传送移动页面或向使用旧版本 Internet Explorer 的用户发送“升级”消息。

让我们检查一些最常见的网络浏览器的用户代理并解读它们的含义。以下是 Windows 7 上 Firefox 的用户代理:

Mozilla/5.0(Windows NT 6.1;WOW64;rv:12.0) Gecko/20100101 Firefox/12.0

在此用户代理中,几条信息被传送到网络服务器。表示操作系统为Windows 7,代号为Windows NT 6.1。此外,“WOW64”代码表示该浏览器在 64 位版本的 Windows 上运行,并将该浏览器标识为 Firefox 12。

现在,让我们检查一下 Internet Explorer 9 的用户代理:

Mozilla/5.0(兼容;MSIE 9.0;Windows NT 6.1;WOW64;Trident/5.0)

虽然大多数信息都是不言自明的,但用户代理标识为“Mozilla”可能会显得令人困惑。为了充分理解这一点,我们还考虑一下 Chrome 的用户代理:

Mozilla/5.0(Windows NT 6.1;WOW64)AppleWebKit/536.5(KHTML,如 Gecko)Chrome/19.0.1084.52 Safari/536.5

在这里,Chrome 似乎将自己定位为 Safari 和 Mozilla。为了解决这种复杂性,深入研究浏览器和用户代理的历史对于全面理解至关重要。

用户代理的演变——从简单到复杂

在网络浏览的早期,用户代理相对简单。例如,最早的浏览器之一 Mosaic 有一个简单的用户代理:NCSA_Mosaic/2.0。当 Mozilla 出现时,它的用户代理是 Mozilla/1.0。

Mozilla 被认为是更先进的浏览器,因为它支持框架, 功能 缺少马赛克。 Web 服务器在收到用户代理后,开始向包含术语“Mozilla”的页面发送框架页面。

然而,微软推出的Internet Explorer也是支持框架的现代浏览器。然而,它最初并没有收到框架页面,因为 Web 服务器专门将框架与 Mozilla 相关联。为了纠正这个问题,微软在 Internet Explorer 用户代理中添加了“Mozilla”,以及其他信息,例如 Internet Explorer 参考和术语“兼容”。当 Web 服务器在用户代理中检测到“Mozilla”时,它们也开始向 Internet Explorer 发送框架页面。

随着 Chrome 和 Safari 等其他浏览器的出现,它们采用了类似的策略,导致每个浏览器的用户代理引用其他浏览器的名称。

一些网络服务器也开始在用户代理中寻找术语“Gecko”,它表示 Firefox 使用的渲染引擎。根据“Gecko”的存在,网络服务器将向基于 Gecko 的浏览器提供与旧版浏览器不同的页面。 KHTML 是 Konqueror 背后的引擎,它向其用户代理添加了诸如“like Gecko”之类的短语,以从 Web 服务器接收现代框架页面。最终,WebKit 被引入,它是基于 KHTML 的,包括诸如“KHTML,像 Gecko”和“WebKit”之类的参考。

用户代理的这些新增内容旨在确保与 Web 标准和 Web 服务器的现代页面的兼容性。因此,今天的用户代理比过去的用户代理更长、更复杂。关键要点是 Web 服务器主要查找用户代理中的特定关键字,而不是确切的字符串本身。

用户代理在网页抓取中的重要性

Web 浏览的常见用户代理

以下是一些最常见的用户代理的列表。如果您需要模拟不同的浏览器,您可以使用其中之一来代替用户代理切换器:

  1. Mozilla/5.0(Windows NT 10.0;Win64;x64)AppleWebKit/537.36(KHTML,如 Gecko)Chrome/58.0.3029.110 Safari/537.36
  2. Mozilla/5.0(Windows NT 10.0;Win64;x64;rv:53.0) Gecko/20100101 Firefox/53.0
  3. Mozilla/5.0(兼容;MSIE 9.0;Windows NT 6.0;Trident/5.0;Trident/5.0)
  4. Mozilla/5.0(兼容;MSIE 10.0;Windows NT 6.2;Trident/6.0;MDDCJS)
  5. Mozilla/5.0(Windows NT 10.0;Win64;x64)AppleWebKit/537.36(KHTML,如 Gecko)Chrome/51.0.2704.79 Safari/537.36 Edge/14.14393
  6. Mozilla/4.0(兼容;MSIE 6.0;Windows NT 5.1;SV1)

用户代理的意义

用户代理在区分一种网络浏览器和另一种网络浏览器方面发挥着至关重要的作用。当 Web 服务器检测到用户代理时,它会触发内容协商——HTTP 中的一种机制,允许通过同一 URL 提供各种资源版本。

简单来说,当您访问 URL 时,Web 服务器会检查您的用户代理并相应地提供适当的网页。这意味着您在从不同设备访问网站时不必输入不同的 URL。相同的 URL 可以提供针对不同设备定制的不同网页版本。

内容协商在显示不同图像格式方面具有重要用途。例如,Web 服务器可能提供 PNG 和 GIF 格式的图像。无法显示 PNG 图像的旧版 MS Internet Explorer 将接收 GIF 版本,而现代浏览器将提供 PNG 图像。同样,Web 服务器可以根据浏览器的功能提供不同的样式表,例如 JavaScript 和 CSS。此外,如果用户代理包含语言设置信息,服务器可以显示适当的语言版本。

考虑以下场景:媒体播放器允许您播放视频,而 PDF 阅读器则提供对 PDF 文档的访问。但是,PDF 阅读器无法打开 MS Word 文件,因为它无法识别该文件 格式.

代理名称递送

代理名称传递涉及提供为用户代理量身定制的内容,这是一种用于搜索引擎优化 (SEO) 的技术。这是一个称为隐形的过程。在此过程中,普通访问者会看到针对人类消费而优化的网页版本,而网络爬虫则感知到可提高搜索引擎排名的简化版本。

用户代理切换

在网页浏览和网页抓取活动期间,可能有多种原因需要更改您的用户代理。这种做法称为用户代理切换。稍后我们将更详细地探讨用户代理切换的细节。

用户代理是 Web 交互的一个基本方面,可在不同设备和浏览器上实现无缝且定制的 Web 体验。

用户代理的种类

虽然 Web 浏览器是用户代理的常见示例,但还有许多其他应用程序和实体可以充当用户代理。这些不同的用户代理包括:

  1. 爬行者
  2. 搜索引擎优化工具
  3. 链接检查器
  4. 旧版操作系统
  5. 游戏主机
  6. Web 应用程序,例如 PDF 阅读器、媒体播放器和流媒体平台

值得注意的是,并非所有用户代理都受到人类控制。一些用户代理由网站本身自动管理, 搜索引擎爬虫 就是一个很好的例子。

用户代理的用例

Web 服务器利用用户代理实现多种目的,包括:

  1. 网页交付:用户代理协助网络服务器确定向特定网络浏览器提供哪个网页。这会导致定制的网页交付,某些页面适合较旧的浏览器,而其他页面则针对现代浏览器进行了优化。例如,如果您曾经遇到一条消息,指出“必须在 Internet Explorer 中查看此页面”,这是因为用户代理的差异。
  2. 操作系统定制:Web 服务器利用用户代理根据不同的操作系统呈现不同的内容。这意味着当您在手机和笔记本电脑上查看相同的网页时,外观可能会有所不同。造成这些差异的一个关键因素是用户代理。如果 Web 服务器收到来自移动设备的请求,则会在用户代理中指定此信息,从而提示服务器显示适合移动设备屏幕的精简页面。
  3. 统计分析:用户代理在网络服务器收集有关用户操作系统和浏览器的统计数据方面也发挥着至关重要的作用。您是否曾遇到过统计数据表明 Chrome 比 Safari 更常用,或者有一定比例的用户通过移动设备访问网络?这些统计数据是通过分析用户代理数据生成的,为用户行为和偏好提供了有价值的见解。

网络爬行和用户代理

网络爬行机器人也依赖于用户代理。例如,最常用的搜索引擎的网络爬虫有自己的用户代理字符串:

浏览器机器人

Web 服务器通常会以不同的方式对待机器人,并授予它们特殊的权限。例如,机器人可能被允许绕过注册屏幕,而无需实际注册。通过将您的用户代理设置为模仿搜索引擎机器人的用户代理,您有时可以绕过此类注册屏幕。

此外,网络服务器可能通过 robots.txt 文件向机器人发出指令。该文件概述了网站的规则并指定了禁止的操作,例如抓取某些数据或页面。网络服务器可能会指示机器人不要访问特定区域,或者相反,允许其仅对网站的特定部分进行索引。机器人通过 robots.txt 文件中指定的用户代理字符串进行识别。

许多主要浏览器都提供设置自定义用户代理的选项。通过用户代理切换,您可以观察Web服务器如何响应不同的浏览器用户代理。例如,您可以将桌面浏览器配置为模拟移动浏览器的用户代理,从而允许您查看移动设备上显示的网页。然而,仅仅使用自定义用户代理是不够的;您还应该轮换用户代理以避免潜在的阻塞。

如何轮换用户代理

为了有效地轮换用户代理,您必须编译用户代理字符串列表,该列表可以从真实的浏览器中获取。接下来,将这些字符串添加到 Python 列表中,并定义每个请求应从此列表中随机选择一个用户代理字符串。下面是用户代理轮换代码的示例 4 和 Python 3:

虽然此方法代表了一种用户代理轮换方法,但也可以使用其他技术。但是,必须遵循每种方法的特定指南:

  1. 确保您正在轮换与每个用户代理关联的完整标头集。
  2. 按照与真实浏览器相同的顺序传输标头。
  3. 利用您之前访问过的页面作为“引荐来源网址标题”。
  4. 使用引用标头时,请确保 cookie 和 IP 地址保持一致。

或者,如果您希望避免手动旋转,您可以使用 代理服务 自动处理用户代理字符串轮换和 IP 轮换。通过这种方法,请求似乎源自各种 Web 浏览器,从而降低了被阻止的风险并提高了总体成功率。 Fineproxy 提供各种类型的 代理人,包括 ISP、数据中心和住宅代理,它们简化了此过程,无需手动操作或麻烦。

为什么要更改您的用户代理?

如前所述,更改用户代理字符串可以让您欺骗浏览器,使其认为您正在使用不同的设备。但你为什么要这样做呢?以下是用户代理切换可以带来好处的几种场景:

网站开发:在网站开发过程中,验证您的网站在各种浏览器上是否正常运行至关重要。通常,开发人员会下载不同的浏览器并通过它们访问网站。然而,获取运行特定浏览器的每个特定设备是不切实际的。更改用户代理提供了更简单的解决方案。这使您能够测试您的网站与常见浏览器的兼容性,并确保向后兼容性,而无需手动安装每个浏览器。

绕过浏览器限制:虽然现在不太常见,但某些网站和网页可能会限制对特定浏览器的访问。您可能会遇到消息,指出特定网页只能在特定浏览器中正确查看。用户代理切换允许您轻松访问这些页面,而不是在浏览器之间切换。

网络刮削:在网络上抓取数据(例如竞争对手的定价或其他信息)时,必须采取预防措施以避免被目标网站禁止或阻止。一项有效的措施是定期更改您的用户代理。网站通过用户代理识别请求的浏览器和操作系统。与 IP 地址一样,使用同一用户代理的过多请求可能会导致被阻止。为了防止这种情况发生,请在网页抓取期间经常轮换用户代理字符串,而不是坚持使用单个字符串。一些开发人员甚至在 HTTP 标头中插入虚假的用户代理来逃避阻塞。您可以使用用户代理切换器工具或手动创建用户代理列表。

搜索引擎机器人访问:高级用户可以修改其设置以模仿流行搜索引擎的用户代理。许多网站允许搜索引擎机器人不受限制地访问,因为它们寻求在主要搜索引擎上排名良好。通过采用搜索引擎的用户代理,网站更有可能授予访问权限而不会遇到问题。

用户代理切换是一种多功能技术,可用于多种目的,包括 Web 开发、绕过限制、网页抓取以及访问具有特定要求的网站。

如何更改用户代理字符串

您可以选择修改您的用户代理以更改您的浏览器标识,这使得网络服务器将您的请求视为源自与您实际使用的浏览器不同的浏览器。如果网站与您的浏览器不兼容或者您正在进行网络抓取活动,这可能会很有用。

更改用户代理的过程在不同的浏览器中可能会有所不同。在本指南中,我们将介绍 Chrome 的方法:

用户代理在网页抓取中的重要性

更改 Chrome 中的浏览器标识

  1. 打开 Chrome 并访问开发人员工具。您可以通过单击浏览器窗口右上角的菜单按钮(通常表示为三个点)来执行此操作。从菜单中导航到“更多工具”,然后选择“开发人员工具”。或者,您可以通过同时按键盘上的 Shift+Ctrl+I 快速打开开发人员工具。
  2. 进入开发人员工具后,导航至“控制台”选项卡。
  3. 在“控制台”选项卡中,单击位于窗格右上角的菜单按钮。如果您没有看到控制台,请单击“x”按钮旁边的按钮(看起来像三个垂直点),然后选择“显示控制台”。
  4. 访问“网络条件”选项卡后,您会发现一个标有“用户代理”的选项。默认情况下,它设置为“自动选择”。取消选中此框可从现有列表中手动选择用户代理。
  5. 或者,您可以设置自定义用户代理。请记住,此自定义用户代理设置仅在“开发人员工具”窗格打开时才会保持活动状态,并将专门应用于您当前使用的选项卡。

更改用户代理的主要原因是为了防止网站阻止您的请求。网站可能会阻止用户请求以保护其数据并防止服务器过载。

网站如何防止未经授权的数据收集

企业经常进行网络抓取来收集有价值的数据用于各种目的,例如竞争价格分析。例如,在建立新业务时,通过研究竞争对手的定价来制定定价策略至关重要。手动检查来自不同竞争对手的众多产品的价格是不切实际的。相反,公司可以利用网络抓取工具来有效地提取这些数据,包括产品描述和属性。

然而,网络抓取涉及在短时间内向网站发送大量请求,这可能会使网站不堪重负。这可能会导致加载时间变慢甚至网站崩溃。为了缓解此类问题并保护其平台,许多网站实施了反抓取措施。这些措施不仅可以保护网站免遭无意的过度使用,还可以防止恶意抓取活动。

以下是网站用来防止未经授权的数据收集的一些常用方法:

IP 速率限制: 网站通常会对来自同一 IP 地址的请求数量设置速率限制。不同网站的过度阈值可能有所不同。例如,一个网站可能会将来自同一 IP 的 20 个请求标记为可疑,而另一个网站可能会容忍最多 200 个请求。超过这些限制可能会导致访问被阻止或采取其他对策。

IP地理位置检测: 一些网站采用 IP 地理位置检测来根据传入请求的地理位置来阻止或限制访问。例如,由于政府法规或与媒体协议相关的许可限制,某些网站可能只允许特定国家/地区内的用户提出请求。为了规避此类限制,用户可以使用代理,使他们看起来好像是从所需的国家/地区访问该网站。

用户代理检测: 网站还分析传入请求的用户代理,以区分机器人驱动的流量和人类驱动的流量。使用自定义用户代理更改浏览器标识可以帮助用户导航这些检查并确保他们的请求被视为人类用户的请求。

如何保护您的网页抓取活动免遭禁止

在进行网络抓取时,以负责任和谨慎的方式处理该过程至关重要,因为许多网站所有者都保护自己的数据,并且可能不赞成开放数据访问。此外,发送过多的请求可能会降低网站速度,甚至可能导致被禁止。为了帮助您在网页抓取时避免被禁止,这里有一些有价值的提示:

从道德角度绕过反抓取机制:

  • 熟悉 robots.txt 文件的内容和功能,该文件告知网络爬虫可以从网站请求哪些页面,不能从网站请求哪些页面。请遵守本文件中概述的规则,以避免网站超载。
  • 一些网站实施反抓取机制来区分机器人请求和人类请求。这些机制通常监视请求速度、模式和 IP 地址等因素。
  • 请注意发送请求的速度,因为机器人发送请求的速度往往比人类快得多。避免以人类用户不可能的速度发送请求。
  • 改变你的抓取模式以避免被发现。不要在每个页面上定位相同的元素,而是在抓取模式中引入可变性。
  • 避免对大量请求使用相同的 IP 地址,因为这会增加被阻止的可能性。

实现请求计时的随机间隔:

  • 为了显得更像人类并防止检测,请在请求之间使用随机延迟。避免以可预测的时间间隔发送请求。
  • 请查阅网站的 robots.txt 文件以确定抓取限制,该限制指定给定时间范围内可接受的请求数量。遵守此限制并在发送后续请求之前等待适当的持续时间。
  • 考虑在非高峰时段(通常是夜间)进行网络抓取,以降低当人类用户积极浏览时网站不堪重负的风险。

使用适当的代理:

  • 轮换IP 地址通过 代理服务器 可以显着降低被禁止或阻止的机会。
  • 与数据中心代理相比,与实际人类用户相关联的住宅 IP 地址提供的禁令风险更低。
  • 住宅代理 提供增强的匿名性,帮助绕过地理定位封锁,并增强网络抓取期间的安全性。
  • 为了有效地进行网页抓取,请考虑使用轮换住宅代理,例如 Fineproxy 提供的代理。这些代理为网站提供了自然且人文的外观,降低了被禁止的风险。
  • Fineproxy 还提供具有 9 个自治系统编号 (ASN) 的数据中心代理,在一个 ASN 被阻止的情况下最大限度地减少停机时间。这种灵活性允许您切换到另一个 ASN 并继续抓取。

有效使用用户代理进行网页抓取

Web 服务器可以轻松检测来自同一用户代理的重复请求,并可能阻止此类活动。为了避免此问题,更改每个请求的用户代理可以降低被阻止的风险。然而,与其他业务运营一起管理此流程可能具有挑战性。这就是 Scraping Robot 的用武之地。他们经验丰富的团队可以根据您的具体要求创建定制的抓取解决方案,并适应各种预算。通过委托 Scraping Robot 进行用户代理轮换,您可以专注于其他重要的业务任务。

刮擦机器人不断添加新模块来增强您的刮擦能力,确保您找到满足您需求的完美工具。对于独特的要求,他们的定制解决方案可能特别有益。

考虑验证码解决方案

用户代理在网页抓取中的重要性

许多网站使用验证码(区分计算机和人类的完全自动化公共图灵测试)来区分机器人和人类用户,主要是为了保护他们的数据。验证码通常要求用户按照指示选择特定图像,这是计算机难以执行的任务。在进行网页抓取时,您可能会遇到验证码,这可能会破坏您的自动化流程。为了克服这个障碍,有一些服务可以自动解决验证码,使您能够绕过此类限制并继续无缝抓取。

探索无头浏览器

无头浏览器是一种独特的 Web 浏览器,缺乏用户界面,例如 URL 栏、书签和选项卡栏。相反,您可以通过编写脚本来指导他们的操作,以编程方式与他们进行交互。虽然无头浏览器缺乏视觉组件,但它们在网络抓取和爬行等任务中表现出色。与传统浏览器相比,它们允许您模拟下载、滚动和单击等操作,同时消耗更少的资源并更快地完成任务。这使得它们非常适合重复性任务,尤其是网页抓取。

值得注意的是,无头浏览器可能会占用大量内存和 CPU,可能会导致崩溃。使用传统的 HTML 提取工具进行网页抓取可能会触发网站检测机制,如果网站将您识别为非人类用户,则会导致阻止。无头浏览器通过模拟交互来克服这个问题,就好像用户依赖 JavaScript 元素执行交互一样,使它们 价值连城 用于从有严格规定的网站上抓取数据。

聪明且合乎道德地刮取

进行网页抓取时,请记住以下基本准则:避免在短时间内发送过多请求,使用各种 IP 地址,并确保您的网页抓取机器人以有机方式运行,以最大限度地减少检测。

对于那些只需要一个浏览器或设备就需要多个 IP 地址的人,Fineproxy 提供了一个解决方案。他们的住宅和数据中心代理可以满足大型和小型公司的需求,促进高效的网络抓取工作。

通过遵循这些策略和道德实践,您可以优化网络抓取工作,同时降低被网站阻止的风险。

用户代理在网页抓取中的重要性

代理如何促进企业数据收集

代理(例如 Fineproxy 提供的代理)在帮助企业收集用于各种目的的有价值数据方面发挥着关键作用。作为企业家或企业主,您可能会好奇使用代理进行网络抓取如何使您的企业立即和长期受益。

竞争分析

在当前的商业环境中,鉴于客户有多种选择,垄断已成为过去。为了在竞争激烈的环境中蓬勃发展,了解竞争对手并找到获得竞争优势的方法至关重要。使用代理进行网络抓取是实现这一目标的宝贵工具。

想象一下,您正在开展一项新业务,并正在寻求有关如何开始以及将精力集中在哪里的见解。通过从竞争对手的网站上抓取数据,您可以收集有关影响消费者购买决策的因素的大量信息。

例如,您可以分析竞争对手的定价策略、产品价格范围以及销售期间的价格波动。此外,您可以检查产品描述和视觉效果,例如您的竞争对手是否提供产品视频和图像以及他们在描述中突出显示的产品属性。

这些见解可以指导您自己的业务策略,帮助您做出与目标受众产生共鸣的明智决策。如果某个特定趋势被证明对大多数竞争对手来说是成功的,那么它也可能适合您的业务。

产品优化

在当今的数字环境中,客户经常依靠产品评论来做出购买决定。有趣的是,您可以利用这一宝贵的信息源根据客户偏好来优化您的产品。

网络抓取允许您从各个网站提取对您产品的提及,以深入了解人们对它们的评价。此外,您可以抓取竞争对手的网站和其他平台,以查找与您类似的产品,重点关注客户评论。

通过分析客户评论,您可以确定客户欣赏或不喜欢产品的具体方面。例如,如果大量评论强调您希望您的产品有更广泛的颜色,您可以专注于引入新的颜色选项来满足客户的喜好。

这种方法最大限度地减少了试验和错误的需要,因为您可以使用现成的数据根据客户反馈来增强您的产品。通过使您的产品更符合客户偏好,您可以超越竞争对手并为您的业务取得成功。

立即获取免费试用代理!

最近的帖子

评论 (0)

这里还没有评论,你可以成为第一个评论者!

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注


选择和购买代理

数据中心代理

轮流代理

UDP代理机构

受到全球 10000 多家客户的信赖

代理客户
代理客户
代理客户 flowch.ai
代理客户
代理客户
代理客户