【问题标题】:Crawling and working on HTML for aggregation site为聚合站点爬行和处理 HTML
【发布时间】:2011-05-22 02:14:03
【问题描述】:

我正在用 PHP 编写一个爬虫脚本。我正在使用 PHP Simple HTML DOM Parser。

获得 HTML 后,我只需从每个页面中提取一些信息,并将这些信息汇总到我自己网站上的 HTML 页面中。

我无法理解如何继续。

感谢任何帮助。

已添加

我想提取一些帖子(如果与特定地理和主题相关)

【问题讨论】:

  • 耶稣。你从哪里开始。你需要一些策略来做你想做的事情。例如,您可以使用包含一些您想要提取的东西的关键字文件,您可以实现一个列表,指示您想要提取的东西......很多方法可以给这只猫剥皮......跨度>
  • 你到底想提取什么......是电子邮件地址吗?

标签: php html dom web-crawler aggregate


【解决方案1】:

正则表达式可能是从数据中获取复杂信息的方法,但对于简单的标签,您可以使用如下内容:


// 从 URL 或文件创建 DOM
$html = file_get_html('http://www.google.com/');

// 查找所有图像
foreach($html->find('img') as $element)
回声 $element->src 。 '
';

// 查找所有链接
foreach($html->find('a') as $element)
回声 $element->href 。 '
';

【讨论】:

    【解决方案2】:

    你可以这样做:

    $doc = new DomDocument();
    @$doc->loadHTMLFile($url);
    $xpath = new DOMXpath($doc);
    $nodeList = $xpath->query("your-xpath-query");
    foreach ($nodeList as $node) {
        // grab the content, attributes or whatever you'r looking for
    }
    

    使用 Xpath 查询,您不必手动遍历 DOM 树,而且您的脚本对于您抓取的网站的结构变化更加健壮。

    我希望这能让你走上正轨。如需更详细的示例,您必须提供更多信息。

    【讨论】:

    • 既然您提到了 XQuery:愿意分享一个成熟的 XQuery 扩展或 PHP 库吗?
    • 我的意思是 xpath 查询。编辑了我的答案。
    猜你喜欢
    • 2018-07-23
    • 2021-02-25
    • 1970-01-01
    • 1970-01-01
    • 2012-08-31
    • 1970-01-01
    • 1970-01-01
    • 2015-09-22
    • 1970-01-01
    相关资源
    最近更新 更多