@Lici

Как взаимодействовать с сайтом через парсер?

Хочу спарсить данные, для этого нужно:

1) Получать страницу
2) Выбирать на ней нужные пункты из select
3) Отправлять данные в определенное поле
4) Нажимать кнопку отправить
5) Выкачивать результат

Во время всего этого дела URL не меняется, так что я не могу передать данные через строку браузера. С получением кода разобрался быстро, а какие вообще слова гуглить чтоб вот это делать заполнение форм и отправку? Как это называется?
  • Вопрос задан
  • 1349 просмотров
Пригласить эксперта
Ответы на вопрос 6
@entermix
Для начала нужно понимать то, как работают HTML-формы:
php.net/manual/ru/language.variables.external.php
Ответ написан
Комментировать
Exploding
@Exploding
wtf?
А можно узнать немного подробнее, какого характера данные Вы хотите "выкачивать" парсером? Возможно они уже лежат в публичном доступе, только вы о них не знаете...

Очень похоже на список стран/областей/городов...
Ответ написан
если только для одной конкретной формы - то:

выбираете данные в селекте руками, откоываете Консоль/Сеть в браузере, жмете Отправить, изучаете запрос, который отправлен на сервер и ответ сервера.

дальше пишете скрипт, который отправляет curl-ом серию таких же POST(?) запросов с разными данными (поочередно подкидывая данные из опшенов) и разбирает ответы.

ну т.е. суть в том, что не надо имитировать выбор из селекта и клики по кнопкам. достаточно имитировать http-запросы, которыми фронт общается с бэком.
Ответ написан
Mirkom63
@Mirkom63
Я программист
Вам нужна программа ZennoPoster
Ответ написан
teknik2008
@teknik2008
Расскажите про GOLANG. Мне интересно
Если знакомы с nodejs. Есть хорошее решение в виде nightmarejs. это по сути безголовый браузер. Можно вытаскивать данные, или взаимодействовать с сайтом.
Ответ написан
Комментировать
Если нужно именно эмулировать поведение пользователя и именно с php, советую присмотреться к Codeсeption с его PhpBrowser (https://www.toptal.com/php/php-testing-with-codeception - по ссылке есть пример с заполнением и отправкой формы).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы