Web 浏览器与 Web Scrapper 之间的每秒请求数

Web 浏览器与 Web Scrapper 之间的每秒请求数

我的理解是:当 Web 浏览器发出查看页面的请求时,服务器会以 HTML 进行响应。然后,Web 浏览器呈现该 HTML 代码,它会在不到 1 秒的时间内(大约)向服务器发送对 HTML 中看到的每个嵌入对象(例如图像)的请求。但是,使用 Web Scrapper,我向服务器发出请求,仅抓取 HTML,而不呈现 HTML。

Web Scrapping 的正确礼仪是,您应该将请求限制为每秒最多一个,以免服务器过载。

那么,为什么 Web 浏览器为每个嵌入对象发送请求(一秒钟内发送多个请求)没有问题,而 Web Scrapper 每秒发送多个请求(仅针对不同页面的 HTML 源代码)却有问题?

答案1

网络爬虫(不是 scrappers)使用延迟的原因是:

  • 隐藏他们正在抓取网络信息,并被禁止访问他们试图抓取的网站(通过在页面之间使用轻微的延迟,他们看起来更像是由正在上网的人操作的网络浏览器)
  • 出于对网站所有者的礼貌(在很短的时间内请求大量数据可能会使服务器超载,并使网站对其他用户来说似乎没有响应)

当您的浏览器(或网络抓取工具)请求页面时,它无需等待整整一秒才能请求同一页面上的对象。它可以立即请求它们 - 从而带来更好的用户体验(更快的页面加载速度)。

“普通”用户不会在很短的时间内请求不同的页面。用户会查看一个页面,点击链接进入下一个页面,等等。
因此,当用户浏览网站时,从同一网站请求不同页面之间会有延迟。这很可能就是您在问题中提到的 1 秒延迟。

显然,为了快速抓取网站数据,网络抓取工具会希望使用尽可能短的延迟。他们会使用不同的方法来加快这一过程(例如,同时抓取多个网站数据;使其看起来好像请求来自多个不同的用户)。对于
网络抓取工具来说,延迟的原因和完成工作的必要性之间总是存在权衡。

欲了解更多信息,请参阅维基百科

相关内容