【问题标题】:web crawler blocked/blacklisted网络爬虫被阻止/列入黑名单
【发布时间】:2018-04-03 06:53:30
【问题描述】:

我编写了一个网络爬虫并在 Ubuntu 虚拟机 (VirtualBox) 上运行它,该虚拟机托管在 Window 机器上。爬虫被我试图爬取的网站阻止/列入黑名单(得到拒绝访问页面),大概是因为我太用力了。

但是,我的 Window 机器仍然可以打开网站,我的其他 Ubuntu 虚拟机也可以在另一台计算机上运行。

所有虚拟机和实际计算机都生活在同一个 WIFI 环境中。所以我猜虚拟机被它的本地 IP 地址或其他一些身份列入黑名单。所以我尝试了以下方法

  1. 使用了不同的(静态)IP 地址
  2. 将 MAC 地址从 Virtual Box 更改为其他地址
  3. 添加并使用了与 Virtual Box 不同 ip 地址的新网络适配器
  4. 在 VirtualBox 上安装了新的 Ubuntu 虚拟机(相同和不同版本)并尝试访问该站点

这些都不起作用。 知道如何更改 Ubuntu 虚拟机的身份吗?

编辑:我使用 Selenium/chromedrive 进行爬网。所有请求确实是从实际浏览器发送的。

【问题讨论】:

    标签: ubuntu web-crawler virtual-machine virtualbox


    【解决方案1】:

    这可能是由于您发送请求的用户代理不好。你在使用假用户代理吗?他们可能会阻止那些提出具有机器人/人类指示的请求的人。 例如。在 Python 中,您可以使用 https://pypi.python.org/pypi/fake-useragent 将 fake-useragent 与请求一起发送。

    【讨论】:

    • 我尝试使用不同的浏览器和'curl'命令来获取相同的页面。用户代理应该不同,但仍然被阻止。
    【解决方案2】:

    如果您在使用爬虫时收到 401 Access Denied HTTP 响应,但您的浏览器请求成功,那么最好的选择是使用 Burp Suite 之类的拦截代理对两个 HTTP 请求进行全面比较(链接如下) .

    配置您的浏览器和您的网络爬虫以将它们的请求发送到 Burp - 然后 burp 会将它们转发到该站点。然后,您可以查看、比较和操作请求。

    不断拦截您的网络爬虫请求,每次将它们更改为更像您的浏览器请求 - 最终该请求将起作用,您将知道您需要在爬虫中更改什么。

    Burp Suite Community Edition

    【讨论】:

      【解决方案3】:

      您的 IP 已被阻止,如果您使用其他互联网服务提供商,您可能仍然可以抓取一段时间,直到他们再次检测到它。

      你总能找到你的公网IP:

      https://www.whatismyip.com/

      【讨论】:

      • 不...我在同一WIFI环境下的其他设备仍然可以访问该站点。它们应该具有相同的公共 IP。只需仔细检查 whatismyip.com,所有机器都具有相同的公共 IP。
      猜你喜欢
      • 1970-01-01
      • 2016-01-25
      • 1970-01-01
      • 2023-03-13
      • 2014-03-30
      • 1970-01-01
      • 2011-12-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多