Этот код вернул hrefs к содержанию, теперь я хочу извлечь содержимое из этого hrefs и отправить его на мой взгляд. Имя div, которое мне нужно извлечь:
<div class="c_pad">
<div class="c_label">
<span class="std_header2">Contact:</span>
</div>
<div class="c_name">
<span class="std_text_b">Monkey</span>
</div>
<div class="clear"></div>
</div>
<div class="c_pad">
<div class="c_label">
<span class="std_header2">Phone number:</span>
</div>
<div class="c_phone">
<span class="std_text_b">001111111</span>
</div>
<div class="clear"></div>
</div>
for($i=0; $i <= 1; $i++)
{
$p = new Client();
$d = $p->request('GET', ''.$link.'&std=1&results='. $i);
$n = $d->filter('a[class="o_title"]')->each(function ($node)
{
$pp = new Client();
$dd = $pp->request('GET', $node->attr('href'));
$kk = $dd->filter('div[id="adv_desc"]')->each(function ($tekst) { echo $node->attr('href').'<br>'.$tekst->text();
});
});
}
Вы хотите отфильтровать определенные теги с атрибутами.
Но вы используете $d->filter('a[class="o_title"]')
,
Это фильтрует тег a
с атрибутом class="o_title"
, И это не часть вашего контента.
Вам просто нужно настроить фильтр узлов, чтобы выбрать правильные элементы.
Используйте синтаксис селекторов jQuery: https://api.jquery.com/category/selectors/
Ссылка на документацию по DomCrawler Symfony, которая используется Goutte:
http://symfony.com/doc/current/components/dom_crawler.html#node-filtering
Других решений пока нет …