Beautiful Soup - поиск между двумя частями документа

Можно ли просто запустить Beautiful Soup над содержимым, содержащимся между двумя строками на странице?

Неоднократно сталкиваясь с ограничениями использования Yahoo Pipes для сканирования экрана, я начал использовать Beautiful Soup, отчасти потому, что размещенная версия доступна на Scraperwiki.

Одна из удобных вещей в блоке импорта HTML в Yahoo Pipes заключается в том, что он позволяет вам идентифицировать начальную и конечную строки, поэтому вы можете ограничить очистку определенной областью страницы.

Я нашел способ соскабливать / из / определенной строки в Beautiful soup:

def scrapeFrom(soup,txt,el,attr=''):
start=soup.find(text=txt)
return start.findAllNext(el,attr)

но не видите, как сбросить все после строки?

То есть я хочу иметь возможность сказать «scrapeFromUntil (soup, fromText, untilText)» и очистить только теги между этими двумя строками?

Есть идеи, как это сделать?


person psychemedia    schedule 03.11.2010    source источник


Ответы (1)


Не совсем то, что вы хотели, но в зависимости от формата вашего HTML вы можете найти использование SoupStrainer для ограничения синтаксического анализа только частью документа полезно.

person miles82    schedule 09.11.2010