@ Джек Мимолетный
В приведенном ниже примере я хочу заменить «Início» на «Start»:
Оригинал:
<li class="current"><a style="color:#00233C;" href="index.html"><i class="icon icon-home"></i> Início</a></li>
Ожидаемый результат:
<li class="current"><a style="color:#00233C;" href="index.html"><i class="icon icon-home"></i> Start</a></li>
Пример из словаря:
dict = {
"Início": "Start",
"Ajuda": "Help",
"Criar Alerta": "Create Alert",
"Materiais e Estruturas": "Structures and Materials"
...
}
Ниже приведен код, который я написал для практики разбора HTML с BeautifulSoup.
(Я заметил, что все подлежащие замене строки находятся внутри тегов "a", затем я использовал SoupStrainer ("a"))
from bs4 import BeautifulSoup
from bs4 import SoupStrainer
with open(html_file, 'rb') as src:
doc = src.read()
src.close()
only_a_tags = SoupStrainer("a")
parse_1 = 'html.parser'
soup = BeautifulSoup(doc, parse_1, parse_only=only_a_tags)
print(soup.prettify())
Исходная строка анализируется и печатается следующим образом:
<a href="index.html" style="color:#00233C;">
<i class="icon icon-home">
</i>
Início
</a>
Учитывая отпечаток выше, я не уверен, смогу ли я получить ожидаемый результат.
Мое намерение состоит в том, чтобы найти строку (и) для каждой строки, затем найти в словаре ее эквивалент и выполнить замену.
К настоящему времени я хочу знать, как выполнить эту замену строк, используя BeatifulSoup.
После этого я напишу цикл for, чтобы наконец выполнить замену всех строк в файле HTML.
Моя первая попытка (прежде чем узнать о BeautifulSoup) состояла в том, чтобы работать над версией .txt HTML-файла, читаемого как двоичный файл, который оказался очень трудоемким и непродуктивным.