Как извлечь данные с помощью Goutte Crawler?

Этот код вернул 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();
});
});
}

5

Решение

Вы хотите отфильтровать определенные теги с атрибутами.

Но вы используете $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

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]