Защитные методы очистки паутины от паука-скрапера

Я занимаюсь парсингом в Интернете около 3 месяцев и заметил, что многие из моих пауков нуждаются в постоянном присмотре из-за того, что веб-сайты меняются. Я использую scrapy, python и crawlera для очистки своих сайтов. Например, 2 недели назад я создал паука, и мне просто пришлось его перестраивать, потому что веб-сайт изменил свои метатеги с единственного на множественное (так что местоположение стало местоположением). Такое небольшое изменение не должно по-настоящему повлиять на моих пауков, поэтому я хотел бы занять более оборонительный подход к своим коллекциям, продвигаясь вперед. Есть ли у кого-нибудь совет по очистке веб-страниц, чтобы меньше присматривать за детьми? заранее спасибо!


person pbthehuman    schedule 11.01.2021    source источник


Ответы (1)


Поскольку вы не публиковали код, я могу дать только общий совет.

  1. Посмотрите, есть ли скрытый API, который извлекает данные, которые вы ищете. Загрузите страницу в Chrome. Осмотрите с помощью F12 и посмотрите вкладку «Сеть». Щелкните CTRL + F, и вы сможете найти текст, который вы видите на экране, который вы хотите собрать. Если вы найдете какой-либо файл на вкладке «Сеть», содержащий данные в виде json, это более надежно, поскольку серверная часть веб-страницы будет меняться реже, чем интерфейс.

  2. Будьте менее конкретны с селекторами. Вместо body > .content > #datatable > .row::text вы можете изменить на #datatable > .row::text. Тогда у вашего паука будет меньше шансов сломаться при небольших изменениях.

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

person Felix Eklöf    schedule 11.01.2021
comment
Я ценю комментарий! Я не поделился кодом, потому что это более общий вопрос для обсуждения. Спасибо за ваш отзыв! - person pbthehuman; 11.01.2021