паттерн preg_match

123
dspu
На сайте с 10.05.2006
Offline
268
#11
LEOnidUKG:
str_replace слова About перед регуляркой :)

зачетно ☝

а если гугл вставляет там еще какие-то неизвестные слова перед числом?

siv1987
На сайте с 02.04.2009
Offline
427
#12

>(?:About\s)?(\d+) results</div>

>(?:\w+\s)?(\d+) results</div>

LEOnidUKG
На сайте с 25.11.2006
Offline
1773
#13
dspu:
зачетно ☝
а если гугл вставляет там еще какие-то неизвестные слова перед числом?

А если он ещё чего-то придумает?

А если див название сменит?

А если цифры поменяет местами?

и т.п.

Есть задача, её и решаю.

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
dspu
На сайте с 10.05.2006
Offline
268
#14
siv1987:
>(?:About\s)?(\d+) results</div>

>(?:\w+\s)?(\d+) results</div>

\d не подходит, гугл между тысячами запятую ставит 24,500

LEOnidUKG
На сайте с 25.11.2006
Offline
1773
#15
dspu:
\d не подходит, гугл между тысячами запятую ставит 24,500

Вы всё ждёте чудес от регулярки? Увы их не будет :)

Segey
На сайте с 23.08.2005
Offline
404
#16
dspu:
Каким паттерном получить цифру 156 из "<div id=resultStats>156 results<nobr>"?

Так если цифру можно так

/([0-9]+) results</
dspu:
его можно откинуть паттерном или надо писать код для анализа получившихся данных?

Слово "results" всегда остается? Лучше бы найти какой-то один признак только для этих результатов уникальный и по нему искать чем делать 10 проверок того что постоянно меняется, например если "results" встречается на странице только там, но бывает и "result", то сделать такое

/([0-9]+) (results|result)</

p.s. Спарсите 300-400 вариантов того что он выдает по разным запросам и посмотрите, <div id="resultStats"> похоже уникальный и всегда есть как бы там ни было, результат целое число и между ними вроде только &nbsp;, но точно не запятые т.к. целое

Brexit - уже совсем рядом. (https://about-this-model.blogspot.com/2019/03/brexit.html)
siv1987
На сайте с 02.04.2009
Offline
427
#17
dspu:
\d не подходит, гугл между тысячами запятую ставит 24,500

Тогда юзайте как выше подсказывают класс символов - []

>(?:About\s)?([\d,]+) results</div>

Segey
На сайте с 23.08.2005
Offline
404
#18
siv1987:
>(?:About\s)?([\d,]+) results</div>

У меня по крайней мере в русском есть

(0,34 сек.) единственно что при preg_match он его не найдет т.к. время генерация (хочется верить) всегда после количества запросов, тогда так должно сработать

Главное чтобы не было никаких чисел перед этим, после id=resultStats>

siv1987
На сайте с 02.04.2009
Offline
427
#19
Segey:
У меня по крайней мере в русском есть
(0,34 сек.) единственно что при preg_match он его не найдет

Если там только запятая то с классом сработает, только я вижу там еще такое есть

в русском

<div>Результатов: примерно 261& #160;000& #160;000</div>
Segey
На сайте с 23.08.2005
Offline
404
#20

siv1987,

Еще &nbsp; там точно попадается, можно добавить все http://ru.wikipedia.org/wiki/%D0%9C%D0%BD%D0%B5%D0%BC%D0%BE%D0%BD%D0%B8%D0%BA%D0%B8_%D0%B2_HTML до кучи вместе с числами и запятой=)

Помню когда я его парсил последний раз не было почему то такой глобальной проблемы )))

123

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