【发布时间】:2022-06-23 02:22:37
【问题描述】:
我正在使用 Goutte 通过 PHP 抓取 URL。
我想在这个标签之后保存一个列表<ul>...</ul>:
<p><strong>Maladies fréquentes :</strong></p>
DOM 看起来像这样的结构:
<p>....</p>
<p>....</p>
<p>....</p>
<p>....</p>
...
<h2>...</h2>
...
<ul>...</ul>
...
<p><strong>Maladies fréquentes :</strong></p>
<ul>
<li>Text I need</li>
<li>Text I need</li>
</ul>
...
<p></p>
<p></p>
...
实际上,我使用:first-of-type 保存到我的数据库中
$crawler->filter('.desc ul:first-of-type li')->each(function ($node) use (&$out) {
$li = array();
if ($node->count() > 0) {
$li[] = str_replace('"', "'", trim($node->filter('li')->text()));
}
// Insert into DV
}
当内容包含2个或3个<ul>...</ul>时总是保存错误的li,因为所有的ul都被选中了。
如何在<p><strong>Maladies fréquentes :</strong></p> 之后只选择<ul>?
谢谢!
【问题讨论】:
标签: php web-crawler nodes goutte