【问题标题】:How to get url in <a> tag with Simple HTML DOM Parser?如何使用简单的 HTML DOM 解析器在 <a> 标记中获取 url?
【发布时间】:2018-01-28 13:15:45
【问题描述】:
<ul id="PrList" class="v2">
    <li class="tools">

    </li>
    <li class="firstRow">
        <div class="i">
            <a href="www.google.com" title="Google" class="nC">
                <img src="something">
            </a>
        </div>
    </li>
</ul>

如何在&lt;div class="i"&gt; 中仅获取href 属性?

我试过这个-

$html = file_get_html($link);
$urls = [];
foreach($html->find('.i') as $element) {
   $url = $element->find('.nC')->href;
   if (!in_array($url, $urls)) {
       echo $url . "<br/>";
       $urls[] = $url;
   }
}

但我收到一个错误:-

注意:试图获取非对象的属性

我试过了:-

$html = file_get_html($link);
$html = $html->find('div.i');
$html -> find('a',0)->href; 
$echo $html;

但我再次收到错误消息:-

致命错误:调用数组上的成员函数 find()

【问题讨论】:

  • $url = $element-&gt;find('a')-&gt;href; 试试看
  • 注意:试图获取非对象的属性

标签: php html dom domparser


【解决方案1】:

你需要这样做:-

$html = file_get_html($link);
$urls = [];
foreach($html->find('.i a') as $element) {
   $url = $element->href;
   if (!in_array($url, $urls)) {
       echo $url . "<br/>";
       $urls[] = $url;
   }
}
echo "<pre/>";print_r($urls);

【讨论】:

  • 我终于解决了这个问题。我挣扎了一天来解决这个问题。我现在很高兴。我很抱歉我的英语不好。非常感谢!
【解决方案2】:

试试这个循环。

foreach($html->find('div[class=i] a') as $a){
  var_dump($a->attr);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-20
    • 1970-01-01
    • 2020-07-16
    • 1970-01-01
    • 1970-01-01
    • 2019-03-04
    • 1970-01-01
    • 2016-01-08
    相关资源
    最近更新 更多