Мне нужно реализовать несколько скребок для обхода некоторых веб-страниц (потому что у сайта нет открытого API), извлечения информации и сохранения в базу данных. В настоящее время я использую красивый суп для написания кода следующим образом:
discount_price_text = soup.select("#detail-main del.originPrice")[0].string;
discount_price = float(re.findall('[\d\.]+', discount_price_text)[0]);
Я думаю, что такой код может очень легко стать недействительным, когда веб-страница будет изменена, даже слегка. Как мне писать скребки, менее восприимчивые к этим изменениям, кроме написания регрессионных тестов для регулярного запуска сбоев?
В частности, существует ли какой-либо существующий "умный скребок", который может "угадать наилучшее усилие", даже если исходный селектор xpath/css больше не действителен?