【问题标题】:Screen scrape a website that blocks ips [closed]屏幕抓取阻止 ips 的网站 [关闭]
【发布时间】:2010-09-01 07:02:34
【问题描述】:

您好,我想通过屏幕抓取像 yelp 这样的网站来获取意大利餐馆的电话号码。我创建了一个简单的程序来做我想做的事情,但他们阻止了我的服务器 ip

我正在使用 php 来执行此操作。我怎样才能越过 ip 块?

听说过screen-scraper之类的程序,但还没用过

最好的方法是什么?是否可以在 php 中使用 screen-scraper?

请注意*这是我正在从事的个人项目,而不是从中创建业务

【问题讨论】:

  • 如果他们阻止了你的 IP,你应该把它当作你的爬虫不受欢迎的标志。该网站不存在帮助您闯入其他人的网站,而这正是您目前正在尝试做的事情。
  • 这是违法行为。
  • @shamittomar:这在很大程度上取决于“用户”所在国家和服务器所在国家/地区的法律(但在某些地方可能确实是非法的,到目前为止 服务器的位置似乎与管辖权有关;因此,如果您坚持自己的行动,则不打算在未来几十年内访问目标国家)。然而,试图绕过禁令意味着“我知道我的做法是错误的,但我不在乎”。
  • @shamittomar -- 不,不是。这可能违反了他试图抓取的网站的服务条款。问题是,他将如何处理他收集的信息。如果他将其作为个人爱好并仅自己使用,则几乎没有法律责任或没有法律责任。如果他将其作为业务的一部分,那么他可能会遇到相当大的麻烦。
  • 很抱歉,这个问题遭到了如此多的反对。我自己做了这个——也只是为了一个我从未与任何人分享过的个人项目。这是一个值得尝试的有趣项目,但重要的是要认识到,如果您不对请求进行速率限制,并且如果目标站点的构建不能很好地处理流量,那么全面的站点抓取可能会使它们立即崩溃,DoS-风格。最坏的情况:如果他们在共享服务器上,可能会取消他们的帐户。所以玩得开心,但要保持友善并保持在雷达之下。

标签: php ip-address block screen-scraping


【解决方案1】:

如果您这样做是为了商业利益,请在原地停下来。看看你是否能找到获得相同数据的许可方式,或者自己动手做。一些公司故意在他们的信息中注入错误或可识别的拼写错误,以此来抓住像你这样的人,并将采取法律措施保护他们的知识产权(即使这些信息如果以任何其他方式收集是完全免费的)。便宜有时最终会变得非常昂贵。

如果您这样做不是为了商业利益(而且您真的很喜欢意大利美食),请移动服务器或等到 IP 块解除(可能永远不会)。重写您的代码并对您的请求设置一个巨大的速率限制器(模拟一个用户并每 5-10 秒左右获取一个页面。在短会话中在几天内抓取该站点。如果他们看到来自单个 IP 的请求过多时间太短,他们会再次将你列入黑名单。如果你是他们,你也会。

【讨论】:

  • 感谢您的建议。是的,它用于个人项目
【解决方案2】:

如果您只需要电话号码,可能有一种更简单的方法可以在一个页面上获取该信息。试试黄页之类的网站。查找您所在地区的意大利餐厅。保存整个页面。然后你就有了数字。

其他网站也可能通过 API 提供此信息 - 这样您就不必违反任何服务条款。编写不当或激进的抓取脚本可能会暂时损坏网络服务器 - 网站阻止这些操作是有原因的。

【讨论】:

    猜你喜欢
    • 2011-06-20
    • 1970-01-01
    • 1970-01-01
    • 2015-01-27
    • 1970-01-01
    • 2011-11-28
    • 2011-05-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多