【问题标题】:Is there any better way to get information from other website than curl?有没有比 curl 更好的方法从其他网站获取信息?
【发布时间】:2011-10-11 09:00:25
【问题描述】:

一个网站将信息存储在 id 中,例如 http://website.com/index.php?id=1。它有大约 500,000 条记录。

我需要检索它们并将其放入数据库 (MySQL)。现在我使用 curl 并获取该信息,但速度很慢。我在一小时内只得到了大约 4,000 条记录。

我的问题,有什么方法可以更快地做到这一点?

【问题讨论】:

  • 瓶颈是什么?如果连接/处理时间,也许您可​​以并行抓取几个(例如,运行多个脚本)。如果带宽限制,太糟糕了。
  • 为什么 curl 对你来说很慢?你可能需要多线程吗?
  • 你有权限抓取这个网站吗?如果您尽可能快地吸出 500,000 条记录,大多数网站运营商都不会高兴。
  • 这意味着您可能希望建立并行连接,一次 10-100 个连接,以获取页面。
  • 我会这么说......他们可能有防御系统,并在数百条记录后将你的 IP 列入黑名单,然后你就不用桨了。

标签: php mysql optimization curl


【解决方案1】:

如果您不反对使用 perl,CPAN 模块 Web::Scraper 是有效抓取页面的传统方式。见http://metacpan.org/pod/Web::Scraper

【讨论】:

    【解决方案2】:

    使用JSONP
    再来一个JSON With Padding

    【讨论】:

    • 这有什么帮助? (我并不是说它不会;我想知道这解决了什么问题。)
    【解决方案3】:

    您总是可以将wget 与php 中的exec 函数结合使用。这当然假设您已将服务器配置为允许 php 执行 shell 命令。但是,wget 明显快于curl

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-28
      • 1970-01-01
      • 1970-01-01
      • 2011-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多