如何在类和元素内部抓取文本

时间:2014-05-26 13:35:00

标签: php web-scraping

我正在尝试通过此网页抓取文字site我要抓取aaa-a.nlabcinkt.nlaccudeals.nl etc..
这些网址来自<ul class="members members-list clearfix">课程,位于<li></li>内 我如何在PHP中使用webscrape?

1 个答案:

答案 0 :(得分:1)

假设您已将文件读取(CURL)到变量$html中。然后,您可以按照以下过程提取所需元素:

$doc = new DOMDocument();
$doc->loadHTML($html);
$sxml = simplexml_import_dom($doc);
if (!$sxml) {
    echo "ERROR. Do something to handle this.\n";
}
$node = $sxml->xpath("//ul[contains(concat(' ', normalize-space(@class), ' '), 'members-list')]");
foreach($nodes[0]->li as $member) {
    echo (string)$member->a; // This will echo the strings you need
}

*未经测试。

(要理解上述代码中的xpath查询,请参阅:Getting DOM elements by classname

我在这里使用DOMDocument和SimpleXml。您可以通过其他几种方式执行此操作,例如,单独使用DOMDocument类来导航DOM,或者使用DOMDocument和DOMXPath,或者甚至可以使用Php字符串函数和正则表达式。