【问题标题】:Pull Data from PHP site - Replicate database从 PHP 站点提取数据 - 复制数据库
【发布时间】:2014-06-02 22:15:55
【问题描述】:

有一个基于 PHP 的网站,我想从中复制数据。

问题在于该网站的数据只能通过公司名称搜索页面访问 - www.example.com/companynamesearch.php

结果显示在同一个 URL 下,因此它没有单独的公司名称 URL 来抓取数据。

谁能建议一种从网站中提取数据的简单方法?

谢谢

【问题讨论】:

  • 每个页面都有一个单独的 URL。它可能只是作为 ajax 调用埋在 javascript 中。如果您给我们真实的网站,我们也许可以提供具体的帮助。此外,如果您确实需要从 HTML 页面中提取数据,请考虑使用 YQL:developer.yahoo.com/yql
  • 你说得对,布拉德。这就是为什么我说可能。
  • "从"复制数据" = 窃取?
  • 如果你只有一个搜索引擎,你就必须向它扔几个 bajillion 搜索词并抓取结果。像这样的抓取网站往往会受到网站所有者的反对......换句话说,您最好联系运营商并协商提要。否则你只是在偷东西。
  • “复制本网站中的任何内容都需要书面许可。”能做的人,不能逃避别人网站的人:(

标签: php database extract replicate


【解决方案1】:

首先,您需要查询数据。确定数据是否真的在此页面上,并且数据是否按照@JonathanM 的建议通过 AJAX 进入。您可以使用 Fiddler 之类的工具或浏览器的开发者工具对此进行监控。

如果您发现数据是通过 AJAX 传入的,那么您就大功告成了。它可能是 JSON,但可以是任何类型,因此请注意。

如果数据在此页面上并且该页面是通过 POST 数据查询的,那么您将不得不发出这些 POST 请求,然后解析该页面。现在,不要自己这样做。使用 DOMDocument 为您挖掘页面。详情见这个问题:How do you parse and process HTML/XML in PHP?

【讨论】:

    【解决方案2】:

    如果您选择的语言是 php,您应该查看 curl 的自动表单提交功能,这将使您能够自动执行内部搜索引擎的表单。

    这里有一个有用的 stackoverflow 答案 fill out a form automaticly using curl and php

    或者您可以查看这些基本教程来帮助您入门: http://phpsense.com/2007/php-curl-functions/ http://devzone.zend.com/160/using-curl-and-libcurl-with-php/

    将 curl 与 php 结合使用可以为您节省大量时间,但请注意,如果网站所有者不希望您抓取他们的网站,您可能会遇到困难。当然还有版权问题要考虑等等。

    【讨论】:

    【解决方案3】:

    您是否尝试过在 Google 上搜索 site:www.example.com ?您可能会得到所有页面的列表。

    他们可能已经提交了站点地图,或者 Google 可能找到了其他方式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-08
      • 2012-03-04
      • 2018-01-05
      • 1970-01-01
      • 2011-01-02
      • 1970-01-01
      相关资源
      最近更新 更多