PHP简单的HTML DOM解析器。不从锚标记

时间:2015-06-15 18:49:08

标签: php parsing simple-html-dom

我正在尝试从html源获取所有URL,但是返回的有效内容不会带来“href”属性。

这是我的代码:

include('simple_html_dom.php');

$foundHits = array();
getArticles('https://pinpoint.microsoft.com/pt-PT/search?keyword=azure');


function getArticles($page) {
    global $foundHits;

    $html = new simple_html_dom();
    $html->load_file($page);

    $hits = $html->find('div[class="companySearchResults"] div[class="itemRight"] a[class=searchResult]');


    foreach($hits as $hit) {

        $foundHits[] = $hit->attr['href'];
    }

    var_dump($foundHits);
}

如果我var_dump $命中变量,这是一个返回的样本:

array (size=2)
  0 => 
    object(simple_html_dom_node)[447]
      public 'nodetype' => int 1
      public 'tag' => string 'a' (length=1)
      public 'attr' => 
        array (size=2)
          'data-bind' => string 'href: uri + '?id=searchResult'' (length=30)
          'class' => string 'searchResult' (length=12)
      public 'children' => 

(...)

你有没有看到,在“attr”数组中我没有得到href标签内容,尽管存在。

但是,如果我将源URL中的内容复制到项目文件夹中的.html,并使用此本地.html作为我的源文件,结果如下:

0 => 
    object(simple_html_dom_node)[650]
      public 'nodetype' => int 1
      public 'tag' => string 'a' (length=1)
      public 'attr' => 
        array (size=3)
          'data-bind' => string 'href: uri + '?id=searchResult'' (length=30)
          'class' => string 'searchResult' (length=12)
          'href' => string '/pt-PT/Companies/4295470302?id=searchResult' (length=43)

(...)

我做错了什么?谢谢你的帮助!

0 个答案:

没有答案