-
Эмуляция браузера на php или парсер без проблем
Опубликовано 10 июля 2009 Комментариев: 5Не так давно столкнулся с одной задачкой. Надо было взять 1000 урлов из поиска Яндекса и проверить наличие определенных признаков (строк) на странице. Пытался все сделать с помощью стандартной функции fsockopen, но возникла проблема — 70-80% серверов меня приравнивали к ДДОС атаке и банили по IP. Убил часа 2-3 на подборы различных User-Agent, но меня всеравно причисляли к вредителям и блокировали.
В результате я наткнулся на библиотеку snoopy.php, которая позволяет эмулировать работу браузера. Там мощный набор функций не только для эмуляции браузера, а еще и для нормального парсинга сайтов.

Вот основной перечень полезных функций этого парсера:
- $snoopy->fetch(«http://www.php.net/»);
Отправляем запрос по интересующему нас урлу и получаем в ответ все содержимое страницы - $snoopy->fetchtext(«http://www.php.net/»);
После отправки запроса получаем только текст, который на странице. Т.е. все теги, картики и скрипты вырезаются. - $snoopy->fetchlinks(«http://www.php.net/»);
Получаем массив с урлами ссылок, которые находятся на интересующей нас странице
И перечень основных переменных этого класса:
- $snoopy->results;
Переменная в которую записывается результат работы предыдущих функций. Она может вернуть строку или массив, в зависимости от того, что хотим получить. - $snoopy->agent;
User-agent, который быдет передаваться при отправке наших запросов. - $snoopy->referer;
Поле реферера, которое будет передано запрашиваемому серверу. Его можно использовать, например, чтобы создавать видимость переходов по ссылкам внутренней навигации сайта.
Также с помощью этой библиотеки можно не только обращаться к страницам, но еще и эмулировать отправку html форм. Видимо создавать post запрос.
Примеры использования:
include "Snoopy.class.php"; $snoopy = new Snoopy; $snoopy->fetchtext("http://www.php.net/"); print $snoopy->results; $snoopy->fetchlinks("http://www.phpbuilder.com/"); print $snoopy->results;Советую всем. Меня эта библиотека просто выручила в трудную минуту.
PS. Прикол от webmonkey
А что еще по теме?
Ответы (5) на “Эмуляция браузера на php или парсер без проблем”
-
Djn еще б к нему настройку чтобы джава исполнялись на запрашиваемых страницах- цены б ему не было
-
Gnom7 6 января 2011 в 9:27
Полезная штука (нашел Вас через Яндекс)
-
Владимир 26 февраля 2012 в 11:24
Привет, напиши пожалуйста как инсталировать снупи
-
а его не надо инсталлировать. Просто инклюдится в скрипте и все.
-
Спасибо!
Удивительно что эта библиотека до сих пор работает :)
Оставить комментарий
- $snoopy->fetch(«http://www.php.net/»);
www.Леха.com
Блог рыбинского вебмастера-самоучки

Последние комментарии