Я занимаюсь парсингом в Интернете около 3 месяцев и заметил, что многие из моих пауков нуждаются в постоянном присмотре из-за того, что веб-сайты меняются. Я использую scrapy, python и crawlera для очистки своих сайтов. Например, 2 недели назад я создал паука, и мне просто пришлось его перестраивать, потому что веб-сайт изменил свои метатеги с единственного на множественное (так что местоположение стало местоположением). Такое небольшое изменение не должно по-настоящему повлиять на моих пауков, поэтому я хотел бы занять более оборонительный подход к своим коллекциям, продвигаясь вперед. Есть ли у кого-нибудь совет по очистке веб-страниц, чтобы меньше присматривать за детьми? заранее спасибо!
Защитные методы очистки паутины от паука-скрапера
Ответы (1)
Поскольку вы не публиковали код, я могу дать только общий совет.
Посмотрите, есть ли скрытый API, который извлекает данные, которые вы ищете. Загрузите страницу в Chrome. Осмотрите с помощью
F12
и посмотрите вкладку «Сеть». ЩелкнитеCTRL + F
, и вы сможете найти текст, который вы видите на экране, который вы хотите собрать. Если вы найдете какой-либо файл на вкладке «Сеть», содержащий данные в виде json, это более надежно, поскольку серверная часть веб-страницы будет меняться реже, чем интерфейс.Будьте менее конкретны с селекторами. Вместо
body > .content > #datatable > .row::text
вы можете изменить на#datatable > .row::text
. Тогда у вашего паука будет меньше шансов сломаться при небольших изменениях.Обрабатывайте ошибки с помощью
try except
, чтобы остановить выполнение всей функции синтаксического анализа, если вы ожидаете, что некоторые данные могут быть несовместимыми.