【问题标题】:How can I use PHP to fetch data from another website and store it in a MySQL database?如何使用 PHP 从另一个网站获取数据并将其存储在 MySQL 数据库中?
【发布时间】:2011-08-17 19:44:22
【问题描述】:

我需要使用 PHP 从网站获取数据并将其保存在 MySQL 数据库中。我还想获取图像并将它们保存在我的服务器中,以便我可以在我的站点中显示它们。我听说可以使用 API,但我想知道我是否可以使用 CURL 来做到这一点。我想每天获取大量的数据,那么使用 CURL 会消耗大量的服务器端资源吗?还有哪些其他方法可以获取数据?

【问题讨论】:

  • 我的第一个问题是您是否有权检索、存储和使用您收集的内容。网站(尤其是大型网站)具有限制抓取和抓取的服务条款,版权和商标法在大多数情况下保护网页内容。
  • 我赞同 Thomas Owens 的话。

标签: php mysql curl


【解决方案1】:

我认为这更像是一个堆栈溢出问题,但我会尝试回答。

从你所说的看来你想要一个通用的网络爬虫。有几个解决方案。而且写你的相对容易。

问题是 php 和 curl 很慢。而且很可能您可以输入内存问题和脚本执行时间。 Php 并不是为无限循环运行而设计的。

我将如何使用自定义爬虫:

尊重 robots.txt!尊重连接数!

Php:卷曲 url,将其加载到 dom(lazy)或解析获取所有标签(用于下一个链接)然后下载所有 img 标签。将 a 标签hrefs 添加到哈希图和队列中。 hashmap 不要重新抓取已经访问过的。排队 - 下一份工作。冲洗重复,你在做生意。

Java : Webdriver + chrome + browsermob 爬虫几行代码就可以搞定。并且你会捕捉到一些你会错过的 js 东西。缓慢但容易和懒惰。您将直接从代理拦截所有图像。

Java/C# :适当的、异步的、高性能的爬虫,后面带有类似 magestic 12 html 解析器的东西。您每分钟可以处理 2000 个页面,这将赢得任何网站管理员的永恒仇恨。

您还可以查看 lucent - apache 项目的一部分。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-10
    • 1970-01-01
    • 1970-01-01
    • 2012-06-11
    相关资源
    最近更新 更多