Парсинг количества нейденых результатов в Google (помогите с регуляркой)

R
На сайте с 13.06.2009
Offline
47
550

Может у кого есть написаная регулярка для этого дела. Я уже устал с ним бороться, они там похоже меняют структуру странички при выводе и шаблон срабатывает не всегда.

Вот тот кусок который срабатывает $pattern = '!<b>.+?</b>\s*-\s*<b>.+?</b>.+?<b>(.+?)</b>!si'

Но срабатывает не всегда.

[Удален]
#1

Количество результатов отображается так:

<div id=resultStats>Результатов: примерно 266&nbsp;000<nobr>

ну и регулярник соответственно:

$pattern='#id=resultStats>(.*)<nobr>#U';

а дальше уже можно intval()

R
На сайте с 13.06.2009
Offline
47
#2
seocode:
Количество результатов отображается так:

<div id=resultStats>Результатов: примерно 266&nbsp;000<nobr>


ну и регулярник соответственно:

$pattern='#id=resultStats>(.*)<nobr>#U';


а дальше уже можно intval()

Тоже не всегда срабатывает. Но и этот вариант добавил. Видимо есть еще какой-то. Они или каждому страничку с разной структурой дают или под браузер (я отправляю разные данные в USERAGENT)

Dimoha
На сайте с 15.06.2009
Offline
53
#3

google действительно меняет html выдачи регулярно.

if(preg_match('#<(div|p)[^<>]+resultStats[^<>]*>(.*)</(div|p)>#isUu', $html, $out))

{

$all = preg_replace('#\([^\(\)]+\)#is', '', strip_tags($out[2]));

$all = preg_replace('#\d+\s*-\s*\d+#is', '', $all);

$all = trim(preg_replace('#[^\d]+#uis', '', $all));

$all = trim($all);

}

Drivelink (http://drivelink.ru/for/support/) - автоматическая проверка ссылок

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий