Как пишутся сложные парсеры на php?

155
22 мая 2019, 14:30

Не является проблемой подменить заголовки, реферер, уникальный ип, куки.

Что является проблемой - отследить перечень перенаправлений, модификацию кук в процессе перенаправлений, особенно, если на сайте присутствует много js или не дай бог технологии посложнее/запросов десятки и в каждом необходимо разобраться

Через отладчик фаерфокса проверять передаваемые куки, необходимые хеадеры может быть слишком трудозатратно.

Какие есть средства, позволяющие проанализировать цепочку запросов до получения конечного результата, в идеале сами генерирующие код, либо сильно облегчающие генерацию кода на php? На ум приходят браузерные плагины, но я таких не знаю

Answer 1

Необходимо вручную обрабатывать редиректы, для этого нужно выключить авторедиректы (например, в cURL за это отвечает опция CURLOPT_FOLLOWLOCATION, в других библиотеках - читайте документацию).

Запрос нужно осуществлять в цикле. При получении ответа обрабатываете полученные заголовки. В конце итерации проверяете код ответа - если 301, 302 (или другой, отвечающие за редирект) и имеется заголовок location, то извлекаете следующий URL из этого заголовка и повторяете итерацию цикла.

READ ALSO
Запретить создание объектов вне класса

Запретить создание объектов вне класса

структура директории: libs - каталог indexphp - точка входа В каталоге libs лежит файл test

150
Как заполнить ассоциативный массив

Как заполнить ассоциативный массив

Подскажите как в PHP через foreach заполнить ассоциативный массив вида

169
Расстояние между всеми точками массива

Расстояние между всеми точками массива

Проинициализировать два массива, которые задают n точек координатами (X, Y) в двумерном пространствеОписать функцию, которая найдет расстояния...

123
QChartView, использование QChartView::RubberBand

QChartView, использование QChartView::RubberBand

В Qt, с помощью QChart реализуется простой графикВ ходе работы возникла необходимость масштабирования по оси X, было решено реализовывать с помощью...

145