0

我有一个单页应用程序,我在其中使用无头浏览器向网络爬虫提供页面,为它们提供与实际用户将看到的页面非常接近的版本。

目前,我将爬虫用户代理列入白名单:google、facebook、bing、yahoo 和linkedin。

我现在希望将其扩展为针对每个用户代理的更强大的东西,而不仅仅是这些。这样做的原因是,如果我不接受特定的爬虫,他们将看到的只是小胡子 HTML 模板。这对我没有好处。

使用巨大的用户代理正则表达式是最好的方法吗?这是每个请求都要做的事情,所以我也需要一些快速的东西......

4

1 回答 1

0

以下是用户代理列表:http ://www.user-agents.org/ (可在此处找到:https ://webmasters.stackexchange.com/questions/3264/where-can-i-find-a-list- of-search-engine-crawler-user-agents-and-their-domain-na )

如果它太多,您可以实现一个布隆过滤器(一种执行“如果存在”测试的内存高效解决方案)。

关于白名单和良好做法,您可能也会感兴趣:https ://meta.stackexchange.com/questions/37231/why-does-the-stack-overflow-sitemap-xml-use-a-user-agent-whitelist-代替

于 2013-07-16T13:52:05.797 回答