基于简单的HTML DOM获取属性

时间:2012-03-21 21:03:07

标签: php html url dom href

如何根据simple HTML DOM在HTML网页上获取 href 属性的内容。 以下是我的脚本示例:

<?php
/* update your path accordingly */
include_once 'simple_html_dom.php';

$url = "http://www.codesphp.com/";
$html = file_get_html($url);
$ret =  $html->find('span.titleSnnipets');



foreach($ret as $story){
    echo $story->find('a',0).'<br/>';
}
?>

此脚本检索页面上的所有标签,我尝试检索所有链接的属性内容。

2 个答案:

答案 0 :(得分:3)

由于我们无法看到您本地主机的内容,因此很难为您提供帮助。我只看到了一个我知道可以优化的小东西,这是第一个find()调用。

<?php
include_once 'simple_html_dom.php';

$url = "http://localhost/website/";
$html = file_get_html($url);
$ret =  $html->find('span.title');

foreach($ret as $story)
{
    echo $story->find('a',0).'<br/>';
}
?>

更新: 我已经说过,因为我看不到你正在使用的内容,所以很难帮到你。您的回复是再次寻求帮助,但不做任何努力提供内容?由于您拒绝让您的内容可访问,我已重写您的代码以改为使用谷歌。此示例按预期工作。拿它并根据需要进行修改。在您提供内容之前,我无法再为您提供帮助。

<?php
include_once 'simple_html_dom.php';
$html = file_get_html('http://www.google.com/');
$divs = $html->find('div.gbm');
foreach($divs as $element)
{
    echo $element->find('a', 0).'<br>';
}
?>

更新#2:这将拉出页面上的所有链接并显示它们。

<?php
include_once 'simple_html_dom.php';
$html = file_get_html('http://www.codesphp.com/');
$links = $html->find('a');
foreach($links as $link)
{
    echo $link->href.'<br>';
}
?>

答案 1 :(得分:2)

形成我理解你想要获得'span'中包含'span'的每个链接的'href',如果是这样你就可以这样做

<?php
/* update your path accordingly */
include_once 'simple_html_dom.php';

$url = "http://www.codesphp.com/";
$html = file_get_html($url);
$ret =  $html->find('span.titleSnnipets');

foreach($ret as $elements) {
    foreach($elements->find('a') as $link) {
        echo $link->href . '<br>';
    }
}
?>