Web crawler 服务器如何知道请求不是来自浏览器 最近,我有一些爬行任务。 我看到很多网站(比如亚马逊)可以知道我的api调用不是来自浏览器,并响应一些消息,比如“Bot-detected”或返回capcha。我立即从浏览器中调用api或url,它仍然有效 我确实克隆了请求,就像浏览器调用一样,复制为curl(用户代理、cookie……都一样) 他们怎么知道我的请求不是来自浏览器

Web crawler 服务器如何知道请求不是来自浏览器 最近,我有一些爬行任务。 我看到很多网站(比如亚马逊)可以知道我的api调用不是来自浏览器,并响应一些消息,比如“Bot-detected”或返回capcha。我立即从浏览器中调用api或url,它仍然有效 我确实克隆了请求,就像浏览器调用一样,复制为curl(用户代理、cookie……都一样) 他们怎么知道我的请求不是来自浏览器,web-crawler,crawler4j,Web Crawler,Crawler4j,有两种简单的方法可以显著减少爬行您站点的机器人数量: ~这项免费服务将成为网站和用户之间的屏障,这意味着它只允许合法用户访问您的网站 将robots.txt文件放入根目录。这为机器人程序提供了说明。这将阻止许多机器人,但不会阻止伪装成真实用户的机器人(这就是为什么Cloudflare如此强大的原因,因为它可以阻止几乎所有的坏机器人。但是,robots.txt通常就足够了。例如,您是否希望阻止来自您将使用的特定目录的所有机器人: 用户代理:* 禁止:/ 这将阻止所有机器人,包括像谷歌这样的合法机器

有两种简单的方法可以显著减少爬行您站点的机器人数量:

  • ~这项免费服务将成为网站和用户之间的屏障,这意味着它只允许合法用户访问您的网站
  • 将robots.txt文件放入根目录。这为机器人程序提供了说明。这将阻止许多机器人,但不会阻止伪装成真实用户的机器人(这就是为什么Cloudflare如此强大的原因,因为它可以阻止几乎所有的坏机器人。但是,robots.txt通常就足够了。例如,您是否希望阻止来自您将使用的特定目录的所有机器人:

    用户代理:*

    禁止:/

  • 这将阻止所有机器人,包括像谷歌这样的合法机器人。你通常不想这样做,除非在你网站的管理目录或其他几个目录中

    以下内容将完全阻止Googlebot:

    User-agent: Googlebot
    Disallow: /
    

    在前面的示例中,您需要分析您的Google Analytics数据,查找可疑的用户代理,并用代理的名称替换上面的Googlebot。

    有两种简单的方法可以显著减少爬网您站点的机器人数量:

  • ~这项免费服务将成为网站和用户之间的屏障,这意味着它只允许合法用户访问您的网站
  • 将robots.txt文件放在根目录中。这将为机器人程序提供说明。这将阻止许多机器人程序,但不会阻止伪装成真实用户的机器人程序(这就是为什么Cloudflare如此强大的原因,因为它可以阻止几乎所有的坏机器人程序。但是,robots.txt通常就足够了。例如,您是否希望阻止来自您将使用的特定目录的所有机器人程序:

    用户代理:*

    禁止:/

  • 这将阻止所有机器人,包括像谷歌这样的合法机器人。你通常不想这样做,除非在你网站的管理目录或其他几个目录中

    以下内容将完全阻止Googlebot:

    User-agent: Googlebot
    Disallow: /
    

    在前面的例子中,您需要分析您的Google Analytics数据,查找可疑的用户代理,并用代理的名称替换上面的Googlebot。

    有很多技术可以防止从站点爬网。 如果你想抓取那个网站,你应该让你的爬虫像个人一样

    1) 在请求之间随机设置睡眠时间

    2) 在每个请求中设置随机用户代理

    3) 您可以通过制作代理服务器进行爬网


    通过分析http流量也可以对该站点进行爬网。有很多技术可以防止从站点爬网。 如果你想抓取那个网站,你应该让你的爬虫像个人一样

    1) 在请求之间随机设置睡眠时间

    2) 在每个请求中设置随机用户代理

    3) 您可以通过制作代理服务器进行爬网


    通过分析http流量,也可以对该站点进行不同的爬网操作。

    啊。。。在这种情况下,您将希望使您的用户代理变得不那么明显和标准。这将欺骗一些网站。例如,Firefox使用:Mozilla/5.0(Windows NT 10.0;Win64;x64;rv:77.0)Gecko/20100101 Firefox/77.0

    聪明的人或使用Cloudflare的人会认出你是个骗子。所以,您需要使用UIPath或Selenium之类的东西来模拟人类。真的没有别的办法欺骗像亚马逊这样的大公司。您可以使用他们的API来获取最有可能需要的数据,但这是有限制的


    *注:我留下了我以前的答案,只是因为我相信人们会用谷歌搜索它,并想知道如何限制某些机器人。这更直接地回答了老年退休金计划的问题

    啊。。。在这种情况下,您将希望使您的用户代理变得不那么明显和标准。这将欺骗一些网站。例如,Firefox使用:Mozilla/5.0(Windows NT 10.0;Win64;x64;rv:77.0)Gecko/20100101 Firefox/77.0

    聪明的人或使用Cloudflare的人会认出你是个骗子。所以,您需要使用UIPath或Selenium之类的东西来模拟人类。真的没有别的办法欺骗像亚马逊这样的大公司。您可以使用他们的API来获取最有可能需要的数据,但这是有限制的


    *注:我留下了我以前的答案,只是因为我相信人们会用谷歌搜索它,并想知道如何限制某些机器人。这更直接地回答了老年退休金计划的问题

    多谢各位。但我的意思是,我想爬那些网站。@ThieuAnh请看我的第二个答案。我相信这会回答你的问题。如果你有任何问题,请告诉我。大多数人使用硒,但有一个学习曲线。如果您不是程序员,UIPath会更容易,但会像人类一样使用更多的系统资源。我在黑暗的网络上也很少看到硒的验证码解算器。也可以为此聘请一名自由职业者(不是我……我讨厌那种东西,让我烦透了)。幸运的是,用户界面上的机器人爬行速度相当慢。我尝试访问API@Thieu的确如此。虽然硒可以解决这个问题,但如果你以前没有使用过它,它可能会让你感到痛苦。不幸的是,对于那些希望获取数据的人来说,他们并没有让这变得容易。。。但他们这样做是有充分理由的。祝你好运w/it.robots.txt不会阻止完全忽略该文件的机器人程序,只会阻止那些真正遵守网站规则的“好”机器人程序谢谢。但我的意思是,我想爬那些网站。@ThieuAnh请看我的第二个答案。我相信这会回答你的问题。让我知道你有没有错