Внимание! На самом деле библиотека не умеет эмулировать работу браузера. Это был маркетинговый ход, а я в 2009 году не понял этого, ибо был молод и не опытен. Это обычная библиотека упрощающая разбор веб-страницы, для тех кто не силен в регулярках. Нужна она для парсинга.
Не так давно столкнулся с одной задачкой. Надо было взять 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 запрос.
Примеры использования:
1 2 3 4 5 6 7 8 9 |
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
Djn еще б к нему настройку чтобы джава исполнялись на запрашиваемых страницах- цены б ему не было
Полезная штука (нашел Вас через Яндекс)
Привет, напиши пожалуйста как инсталировать снупи
а его не надо инсталлировать. Просто инклюдится в скрипте и все.
Спасибо!
Удивительно что эта библиотека до сих пор работает 🙂
защиту гугла от iframes и т.п. вставок этот скрипт не обходит. Жалко конечно. Ищу способ обхода защиты от вставки методом iframes. Посоветуйте что-нибудь.
Такой вопрос по снуппи
на запрашиваемой странице стоит проверка :
то есть если JS отключен — то фиг вам а не правильный код страницы, переходит на «обновите браузер»
можно ли с помощью снуппи сделать имитацию наличия JS при запросе страницы ?
не вставился код в сообщение 🙁
А вообще, кто-то умеет имитировать мобильные браузеры?
SEO продвижение сайтов в Москве — https://stalingradpictures.ru
Обучение за рубежом — https://friendlyeducation.ru/category/articles/