1

我目前正在构建一个刮板来从网站上刮取某些信息。

例如,我想从网站上获取餐厅名称、地址、营业时间和电话号码。

通过使用 curl,我设法从网站获取数据:

    $url = "http://localhost/test.html";
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    $data = curl_exec($ch); 
    curl_close($ch);

但是,我需要一些关于如何将我的刮刀精确定位到确切位置以刮除这些信息的想法。

我已经尝试过正则表达式,但无法让它工作。

4

2 回答 2

3

对 php 使用 SimpleHTMLDom 解析器:http:
//simplehtmldom.sourceforge.net/

在这里下载:http:
//sourceforge.net/projects/simplehtmldom/files/

此处的文档:http:
//simplehtmldom.sourceforge.net/manual.htm

那是因为我有使用 php 解析 HTML 的最佳工具的经验......

如果没有必要,您也不需要使用 curl 来获取内容,对于 simpleHTMLDom 解析器只需使用:

$remote_html = file_get_html("http://www.somesite.com/");
于 2012-10-05T12:48:30.080 回答
1

看一下 XPath 查询: http://php.net/manual/en/domxpath.query.php

我在 C# 中使用等效方法进行网站抓取。这里采用相同的标准。最优秀的。

于 2012-10-05T12:49:22.547 回答