【问题标题】:simple html dom traversal confusion when looping循环时简单的html dom遍历混淆
【发布时间】:2020-04-18 13:51:47
【问题描述】:

我正在尝试使用 php 脚本 simplehtmldom 在抓取时循环浏览网页上的 div。

现在我有这个:

$url = "https://test.com/";

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

$item_list = $html->find('div.main div[id]');

foreach ($item_list as $item)
{
    echo $item->outertext . PHP_EOL;
}

这会给我很多这样的(来自上面循环中的回声):

<div id=1>
    <div>
      stuff here
    </div> 
    <div>
     <span class="title">name</span>
    </div>
</div>
<div id=2>
    <div>
      stuff here
    </div> 
    <div>
     <span class="title">name 2</span>
    </div>
</div>

我正在尝试使用 class=title 遍历跨度,但无论如何我似乎都无法获得正确的选择器。有人可以帮帮我吗?

【问题讨论】:

  • 你需要发布$urlhtml内容
  • 不,我没有。我在循环中处理的 HTML 内容就在第二个代码块中。
  • 您可以添加对具有类title 的跨度的搜索,例如$item_list = $html-&gt;find('div.main div span[class=title]');

标签: php html dom


【解决方案1】:

您可以通过添加span[class=title] 作为选择器来获取跨度:

$item_list = $html->find('div.main div[id] span[class=title]');

foreach ($item_list as $item)
{
    echo $item->outertext . PHP_EOL;
}

【讨论】:

    猜你喜欢
    • 2012-11-06
    • 2013-08-26
    • 2012-01-02
    • 2020-05-07
    • 2019-07-05
    • 2014-09-26
    • 1970-01-01
    • 2021-11-23
    相关资源
    最近更新 更多