Емуляція браузера на php або парсер без проблем
Увага! Насправді бібліотека не вміє емулювати роботу браузера. Це був маркетинговий хід, а я в 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/»); Отримуємо масив з урлами посилань, які знаходяться на сторінці, що нас цікавить
І перелік основних змінних цього класу:
Також за допомогою цієї бібліотеки можна не лише звертатися до сторінок, але ще й емулювати відправлення html форм. Мабуть створювати запит запит.