我想从这个网站抓取文本,我想抓取aaa-a.nl
, abcinkt.nl
, accudeals.nl
, etc..
这些url来自<ul class="members members-list clearfix">
类,位于<li></li>
内部。
我如何在PHP中抓取这些?
假设您已经将文件读取(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查询,请参见:通过类名获取DOM元素)
这里我使用DOMDocument和SimpleXml。您可以通过其他几种方式来实现这一点,例如,单独使用DOMDocument类来导航DOM,或者使用DOMDocument和DOMXPath,或者甚至仅仅使用Php字符串函数和正则表达式。