Intereting Posts
Как преобразовать строку «HH: MM: SS» в секундах с помощью PHP? Использовать PHP webservice в приложении iPhone WooCommerce: автоматическое завершение оплаченных заказов (в зависимости от способов оплаты) отправка электронной почты с помощью функции php mail распространяется на спам Полнотекстовый поиск и сортировка php mongodb Отображение таблицы в PHP с повторяющимися столбцами что является лучшим способом создания случайного идентификатора mysql с помощью PHP Как реализовать веб-скребок в PHP? Массивы из нескольких форм загрузки, Загрузка изображений, а затем вставка в базу данных (PHP, MySQL) базовый расчет даты для проверки истечения срока действия 6 .htaccess Rewrites: Удалить index.html, Удалить .html, Force non-www, Force Trailing Slash TokenMismatchException в строке VerifyCsrfToken.php 67 на laravel с использованием ajax Как получить значение после хэша в «somepage.php # name»? Yii: невозможно удалить вещи из панели администратора PHP удаляет все кепки

Как очистить содержимое веб-сайта (* COMPLEX * iframe, javascript-представление)

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

Во-первых, когда вы нажимаете URL-адрес «Расписание занятий», он сначала направляет вас по нескольким другим страницам (я считаю, что нужно установить файлы cookie и проверить другое дерьмо).

Затем он, наконец, загружает страницу с iframe, которая, по-видимому, только нравится загружать, когда она загружается с веб-страницы учреждения (например, arizona.edu).

Оттуда представления формы должны быть сделаны с помощью кнопок, которые фактически не перезагружают страницу, а просто представляют собой запрос AJAX, и я думаю, что он просто манипулирует iframe.

Этот запрос особенно сложно воспроизвести. Я использую PHP и скручиваю, чтобы имитировать браузер, посещающий начальную страницу, собирать правильные файлы cookie и т. Д. Но я думаю, что у меня проблема с заголовками, которые посылает функция curl, потому что она никогда не позволяет мне выполнять какой-либо запрос после загрузки начальной «формы поиска».

Любая помощь будет потрясающей …

http://www.arizona.edu/students/registering-classes -> «Расписание занятий»

Или просто здесь: http://schedule.arizona.edu/

Если вам нужно соскрести сайт с интенсивным использованием JS / AJAX – вам нужно что-то более мощное, чем php;)

Во-первых, это должен быть полный браузер с возможностью выполнять JS, а во-вторых – должен быть некоторый api для автоматического просмотра.

Предполагая, что вы ребенок (кому еще нужно разбирать школу), попробуйте Firefox с iMacros . Если вы более опытный ветеран – посмотрите на Селен.

Я использовал много страниц с JS, iframe и всевозможными вещами. Я использовал PhantomJS в качестве браузера без браузера, который позже я обернул оболочкой PhantomCurl . Обертка представляет собой скрипт python, который можно запускать из командной строки или импортировать в виде модуля

Вы уверены, что вам разрешили очистить сайт?

Если да, то они могут просто дать вам простой REST api?

В редких случаях, когда они позволят вам перейти к данным, но не будут предоставлять API, я бы посоветовал установить некоторое программное обеспечение для записи вашего взаимодействия с HTTP с веб-сайтом, возможно, с wirehark или с некоторым прокси-сервером HTTP, но важно, чтобы вы получаете всю информацию о записанных HTTP-запросах. После этого проанализируйте его и попробуйте воспроизвести его до последнего бита.

Среди возможных задач может случиться так, что в какой-то момент времени сервер отправляет вам сгенерированный javascript, который должен быть выполнен клиентским браузером, чтобы перейти к следующему шагу. В этом случае вам нужно будет понять, как анализировать полученный javascript, и выяснить, как двигаться дальше.

Также хорошей идеей было бы не запускать все ваши HTTP-запросы в пакетном режиме, ставить некоторые случайные задержки, чтобы сервер выглядел более «человечным».

Но в конце концов вам нужно выяснить, все ли это стоит проблемы? Так как почти любой дорожный блок до соскабливания можно обойти, но он может стать довольно привлекательным и трудоемким.