【问题标题】:Executing a long running screen scraping script [closed]执行长时间运行的屏幕抓取脚本 [关闭]
【发布时间】:2012-01-12 10:03:33
【问题描述】:

我在通过命令行运行的 GoDaddy 共享 LAMP 服务器上有一个 PHP 屏幕抓取脚本。

脚本抓取、解析所需信息并将其存储在数据库中。每个页面的整个过程大约需要 1.5 秒,并且需要抓取接近 10,000 个页面(并且对于每个页面,从另外两个页面获取 cookie,使其总共有 30k 个页面是curled)。

整个脚本大约需要 5 个小时才能运行。我做了一些内存分析,在整个运行过程中内存消耗或多或少保持不变 - 它不会增加。

如果我要在一夜之间运行脚本,GoDaddy 会注意到它有什么异常吗? CPU 消耗不应该太多,但在 5 小时内每 1.5 秒获取 3 个页面的带宽消耗会有多糟糕?足以在 GoDaddy 的末日发出警报?

如果是,我想我可以分解脚本运行 1500 页,然后暂停一小时然后继续。我应该这样做吗?

【问题讨论】:

  • 试试吧,Godaddy 会告诉你的。然后,您可以稍后决定如何解决具体(而非虚构)问题。
  • "如果我一夜之间运行脚本,GoDaddy 会注意到它有什么异常吗?CPU 消耗应该不会太多,但是持续时间每 1.5 秒取 3 个页面的带宽消耗会有多糟糕5 小时?足以在 GoDaddy 结束时发出警报吗? GoDaddy 无需等待您运行它。他们可以通过在此处阅读有关内容来了解​​您将要这样做。屏幕抓取是一种非常糟糕的信息收集方式,如果您要针对 30K 页面运行,您不认为从站点中寻找 API 或数据源会更好吗?
  • @theTinMan 我怀疑他们会扫描 StackOverflow 上的每个问题,以免有人可能会提到某些东西。另外,我不担心他们会因为“不道德”而关闭我的脚本。我担心它可能会消耗引发警报的资源。无论如何,我昨晚运行了它,没有任何问题,所以一切都很好。
  • PS - 没有 API。我正在抓取我大学的课程目录,以便向其他人提供 RESTful API。

标签: php curl screen-scraping shared-hosting


【解决方案1】:

为了不让问题没有答案,我会发布答案:

我在一夜之间运行了脚本。运行了大约 5 个小时,它既没有被 GoDaddy 终止,我也没有收到任何通知,所以我想他们没问题。

最初我遇到内存问题,脚本会用完分配给我的内存,但显然这是 PHP 5.3 之前的错误(有关 here 的更多详细信息)。修复后,它一直徘徊在 32-34MB 的 RAM 使用量上。对 CPU 消耗或带宽使用情况一无所知。

【讨论】:

  • 我想知道为什么@theTinMan 觉得“屏幕抓取是一种非常糟糕的信息收集方式”。捕获现有数据并以新的方式使用它来为您的特定用户带来好处似乎是有益的,并且肯定是获取和呈现数据的有效方式。是否假设您正在窃取,因此唯一正确的做法是通过公司法律委员会并请求许可(如果实际上不存在 API)?当然,如果您从他们的工作中获利,您可能需要付费,但在此之前,这类似于在您的聚会上请求允许播放唱片。没有?
猜你喜欢
  • 2018-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-17
相关资源
最近更新 更多