Замена строки в HTML-файле в Python

#html #python-3.x

#HTML #python-3.x

Вопрос:

Я пытаюсь заменить строку, хранящуюся в списке, HTML-тегом в файле, выполнив:

     links=[<a href="http://hexagon-dashboard-gbc-01/vboard/latest?regs=3281546">http://hexagon-dashboard-gbc-01/vboard/latest?regs=3281546<!--V68NUR--></a>]
   str1="""<a href="%s">%s<!--V68NUR--></a>"""%(vboard['V68N']['perf.tl'],vboard['V68N']['perf.tl'])
     with open(html_file,'r ') as f:
                content = f.read()
                f.seek(0)
                f.truncate()
                f.write(content.replace(links[0],str1))
                
  

Но я получаю следующую ошибку:

TypeError: replace() аргументом 1 должен быть str, а не Tag.

Чего мне не хватает? Пожалуйста, помогите мне с модификацией, которую я должен сделать.

Ответ №1:

Обновлено:

Из того, что вы опубликовали, я полагаю, что вы обрабатываете html-файл как обычный текст и собираетесь выполнить замену строки.

Функция replace() работает только тогда, когда оба ее аргумента являются строками.

Причина, по которой вы получили ошибку, заключается в том, что links[0] — это не строка, а тег.

Если вам удастся получить ссылки, подобные этой (обратите внимание на одинарные кавычки)

 links=['<a href="http://hexagon-dashboard-gbc-01/vboard/latest?regs=3281546">http://hexagon-dashboard-gbc-01/vboard/latest?regs=3281546<!--V68NUR--></a>']
  

затем

 content.replace(links[0],str1)
  

не приведет к возникновению каких-либо ошибок.

Для редактирования html-файлов вы также можете вместо этого использовать HTML Parser.

Комментарии:

1. ссылки также получаются из html

2. Спасибо@Steven Liang