使用Simple Html DOM获取无效的结构化属性

时间:2014-08-10 11:14:25

标签: php web-scraping simple-html-dom

我正在尝试获取一个锚标记,但结构很差。 像这样:

<a  target='_blank' title='Some'href='somelink.html'>Link 1</a>

我尝试使用

获取有效属性
foreach($html->find('a') as $links)
 {
     var_dump($links->attr);
 }

var_dump清楚地表明href属性未列在其他属性中。

如何找到锚?

1 个答案:

答案 0 :(得分:0)

$html = "<a  target='_blank' title='Some'href='somelink.html'>Link 1</a>";
//or $html = file_get_contents('example.html');
$dom = new DOMDocument();
@$dom->loadHTML($html);
$a = $dom->getElementsByTagName('a');

$nodes = array();
for ($i = 0; $i < $a->length; $i++) {
    $attr1 = $a->item($i)->getAttribute('target');
    $attr2 = $a->item($i)->getAttribute('title');
    $attr3 = $a->item($i)->getAttribute('href');
    $nodes[] = array('target'=>$attr1, 'title'=>$attr2, 'href'=>$attr3);
}
print_r($nodes);