刮掉onclick网址

时间:2014-03-05 21:03:15

标签: php dom

我想用php抓取html并从特定的表格单元格中检索js onclick url,单元格总是相同的对,所以我只需要每对中的一个url,例如:

<tr>
<td width='10' class='score' OnClick="window.location='page.99.html'">
<td width='10' class='score' OnClick="window.location='page.99.html'">
</tr>

我想从这些中检索page.99.html并继续进行,但是有很多对。我一直在使用它,可以获得单元格值,但不是onclick propery:

$dom = new DOMDocument();
$res=$dom->loadHTML($html);
$xpath = new DomXPath($dom);
$cells = $xpath->query( '//td[@width="10"]');

foreach($cells as $cell) {
echo $cell->nodeValue;
}

有人可以告诉我如何为每个合适的单元格访问此onclick网址吗?

2 个答案:

答案 0 :(得分:2)

使用简单的dom:

$doc = str_get_html($str);
echo $doc->find('td[onclick]', 0)->onclick;

答案 1 :(得分:1)

这应该这样做:

$onClicks = array();

$dom->loadHTML($html);

foreach($dom->getElementsByTagName('td') as $td) { 
    if((int)$td->getAttribute('width') == 10) {
        $onClicks[] = $td->getAttribute('OnClick'); 
    }
} 

foreach($onClicks as $onClick) {
    // do something...
    echo $onClick;
}