Комментарии 11
Разработанный парсинг не могут забанить по ip, поскольку демонстрируется реклама
Могут. Достаточно посмотреть, что с одного ip очень много запросов на разные VIN-ы
В ходе анализа я обнаружил библиотеку «requests» для передачи POST
запросов, но понял, что она не подходит, поскольку на сайте «ГИБДД.РФ»
есть элементы JS, а значит, что VIN номер не передать через адресную
строку.
Зайдите в браузер, откройте инструементы разработчика, вкладку сеть, нажмите на кнопку проверки VIN. Увидите, что отправляется запрос с url https://сервис.гибдд.рф/proxy/check/auto/history и телом {vin: 'vin', checkType: 'history'} Повторяете такой же запрос с помощью requests или может scrapy, распараллелив запросы при этом, чтобы они запускались одновременно, и проверяете все 70 тысяч VIN-ов за 10 минут, а не за:
количество полученных VIN-номеров в день – 7-8 тысяч. То есть на 10
компьютерах 70 тысяч VIN -номеров можно пропарсить за один день.
По ip не забанили, думаю им не выгодно, так как я просматриваю рекламу при каждом её появлении. Может позже это пофиксят. Через request вполне могут забанить, но стоит попробовать, спасибо!
requests - не получиться, на сайте reCaptcha v3 которое и при каждом запросе анализируются отправленные данные и если score < 0.7 то в ответе будет информация что вы не прошли проверку. Так что за 10 минут распарсить 70 тысяч винов я уверен что будет не так просто и не за 10 мин тем более...
Открывается новое окно webdriver, после чего запускается сайт со следующим содержанием:
После этого предложения, возможно, должен быть какой-то скриншот, но в статье его нет.
Скриншот перед текстом, видимо, съехал
Кстати, да, упустил этот момент. Уже исправлено.
Scrapy не пробовали?
Объясните дилетанту, пожалуйста, для чего совместно использовать selenium и beautifullSoup? Ведь у них пересекающийся функционал.
Прошло 4 месяца, но вдруг ещё актуально: по крайней мере поиск элемента по содержимому страницы в selenium существенно медленнее, чем в beautifullSoup. То есть, если вам надо достать пару сотен нод с одной страницы, то быстрее будет её открыть селениумом, потом передать в суп и уже там искать содержимое. К тому же, страница в selenium изменяется в режиме реального времени, и если у вас есть опасение, что содержимое страницы может измениться до того, как вы из него достанете нужную информацию (например, там какая-нибудь обновляющаяся лента висит), то надёжнее передать в суп, где она будет зафиксирована, и уже там препарировать.
Парсинг сайта с помощью PYTHON + SELENIUM