从页面获取特定元素

乔苏·埃斯皮诺萨(Josue Espinosa)

我正在尝试从我的网站中提取一些数据。这很简单,但是我找不到任何好的示例/文档,因此我很难过。我正在尝试为我的朋友们创建一个API来使用我的博客,但这有点困难。假设我有一个网站http://www.sample.com,并且该网站的html源是:

  <div class="container">
   <a href="/mywebsiteblogpost/">
      <h2 class="title">im the best</h2>
   </a>
   <span class="author">Josue Espinosa</span> 
   <div class="thumb"> <img src="http://www.sample.com/imgsrc" alt="">
   <span class="category">sports</span> 
   </div>
   <p>preview text</p>
   <a class="more" href="/mywebsiteblogpost/">full text...</a> 
</div>

我希望能得到大家.container的孩子,第一个a孩子的href价值,之类的文本值titleauthor中,img src为孩子里面.thumb,和文本价值category

我从开始a href src,但还没走那么远。我以为$ title会在容器内回显第一个锚标记的href值,但它不起作用。

$text = file_get_contents('http://www.sample.com');
$doc = new DOMDocument('1.0');
$doc->loadHTML($text);
foreach($doc->getElementsByTagName('div') AS $div) {
    $class = $div->getAttribute('class');
    if(strpos($class, 'container') !== FALSE) {
        // title doesnt retrieve the href value of title :(
        $title = 'TITLE'.$div->getElementsByTagName('a')->getAttribute('href').'<br>';
        //this echos all the text in all of the children of $div
        echo $div->textContent.'<br>';
    }
}

谁能解释为什么?

欧根·里克(Eugen Rieck)

罪魁祸首是$div->getElementsByTagName('a')->getAttribute('href')第一部分,$div->getElementsByTagName('a')检索元素列表,而不是单个元素。因此,以下操作->getAttribute('href')不会正确。

要解决此问题,请像使用div-tags一样进行迭代

foreach($div->getElementsByTagName('a') as $a) {
  $href = $a->getAttribute('href');
  if ($href) echo "TITLE$href<br>";
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

香草javascript:在ajax获取请求中获取页面的特定元素

来自分类Dev

从ArrayList获取特定元素

来自分类Dev

从特定元素获取数据

来自分类Dev

使用特定的span类python硒获取页面中的所有元素

来自分类Dev

Geckofx从页面获取特定链接

来自分类常见问题

获取硒中的特定元素

来自分类Dev

如何获取特定的数组元素

来自分类Dev

获取特定元素的文本内容

来自分类Dev

python BeautifulSoup获取特定元素

来自分类Dev

获取特定整数元素的对象

来自分类Dev

jQuery获取元素的特定类

来自分类Dev

从arraylist元素获取特定值

来自分类Dev

从文件头获取特定元素?

来自分类Dev

获取特定整数元素的对象

来自分类Dev

使用xmllint获取特定元素

来自分类Dev

在AngularJs中获取特定元素

来自分类Dev

如何获取xml元素的特定子元素?

来自分类Dev

获取求和特定元素数组的元素

来自分类Dev

jQuery-在特定页面上隐藏元素

来自分类Dev

平滑滚动到页面上的特定元素

来自分类Dev

平滑滚动到页面上的特定元素

来自分类Dev

jQuery-在特定页面上隐藏元素

来自分类Dev

获取元素的ID并显示在页面上

来自分类Dev

从JSP页面使用JavaScript获取元素的价值

来自分类Dev

从外部页面PHP获取元素的内容

来自分类Dev

JQGrid:从不同页面获取元素

来自分类Dev

从页面获取所有文本元素

来自分类Dev

从模型类获取页面视图元素

来自分类Dev

使用 javascript 从外部页面获取 html 元素