Я анализирую HTML-документ и хочу получить все теги css blockquote класса "FlatParagraph", однако есть некоторые классы, которые включают в себя другой класс, который я хотел бы исключить "FlatParagraph view-history-note".Я думаю заменить класс «FlatParagraph view-history-note» классом «view-history-note».
Мой вопрос похож на этот (если лучший метод - заменить нежелательный класс) ( Замена имени класса BeautifulSoup ), однако мне нужно, чтобы обновленные классы оставались на месте висходный код, который я запрашиваю в дальнейшем, и мне нужен подход find_all (), а не find (), так как существует более одного класса "FlatParagraph view-history-note" для замены.Я подумал, может быть, регулярное выражение, но возникли проблемы с преобразованием строки обратно в HTML для дальнейшего запроса.
Я бы очень признателен за любую помощь, спасибо.
Вот пример формата.Я хочу исключить <BLOCKQUOTE class="FlatParagraph view-history-note">
строки.
<!doctype html>
<html lang="en">
<head>
<div>I don't want this tag</div>
<p>I have already been extracted</p>
<BLOCKQUOTE class="FlatParagraph">I want to keep this part</BLOCKQUOTE>
<BLOCKQUOTE class="FlatParagraph view-history-note">I don't want to keep this part</BLOCKQUOTE>
<BLOCKQUOTE class="FlatParagraph view-history-note">I don't want to keep this part</BLOCKQUOTE>
<BLOCKQUOTE class="FlatParagraph view-history-note">I don't want to keep this part</BLOCKQUOTE>
<p>I have already been extracted</p>
<BLOCKQUOTE class="FlatParagraph">I want to keep this part</BLOCKQUOTE>
<p>I have already been extracted</p>
<BLOCKQUOTE class="FlatParagraph">I want to keep this part</BLOCKQUOTE>
<p>I have already been extracted</p>
<BLOCKQUOTE class="FlatParagraph">I want to keep this part</BLOCKQUOTE>
<BLOCKQUOTE class="FlatParagraph view-history-note">I don't want to keep this part</BLOCKQUOTE>
</head>
</html>
Я пробовал soup.select(".FlatParagraph")
, но при этом также извлекаются цитаты .FlatParagraph view-history-note
.
Я также пытался получить все дочерние элементы от родителя, возвращаются только первые 10 или около того дочерних элементов (html имеет длину более 1000 строк).
Ожидаемые результаты для HTML выше будут
[<BLOCKQUOTE class="FlatParagraph">I want to keep this part</BLOCKQUOTE>, <BLOCKQUOTE class="FlatParagraph">I want to keep this part</BLOCKQUOTE>, <BLOCKQUOTE class="FlatParagraph">I want to keep this part</BLOCKQUOTE>, <BLOCKQUOTE class="FlatParagraph">I want to keep this part</BLOCKQUOTE>]