Как найти тег body в файле HTML с неизвестным классом? - PullRequest
0 голосов
/ 27 апреля 2020

Недавно у меня проходят онлайн-уроки, и после каждого урока мы должны экспортировать нашу работу из Документов Google в файл HTML, чтобы мы могли загрузить ее на наши веб-сайты. Экспортированный в Google Docs файл HTML содержит очень грязный код, а тег body всегда имеет разные классы, такие как: "c47", "c72", "c21", "c38" и c. Я думаю, просто буква "c" с каким-то случайным числом после него. Основная проблема в том, что после тега body я хочу добавить свою кнопку (кнопка CSS, но это не проблема), но когда я пытался использовать bs4:

from bs4 import BeautifulSoup as Soup
from bs4 import NavigableString

html = open("new_html_file.html", "w+")
soup = Soup(html, features="html.parser")
body = soup.find('body')
button = soup.new_tag('button')
button['class'] = "cupid-blue"
button['onclick'] = "location.href=\'index.html\';"
button.insert(0, NavigableString("Button text"))
body.insert_after(button)
br_line = soup.new_tag('br')
button.insert_after(br_line)

html.write(str(soup.prettify()))
html.close()

Это говорит о том, что 'NoneType' object has no attribute 'insert_after' и ошибка соответствует body = soup.find('body'), поэтому в основном он не может найти тег body, потому что кажется, что тег body содержит этот класс: "c47 c73", верно? Каждый файл имеет свой класс тегов body, поэтому я не могу просто жестко его кодировать.

Мой вопрос: Могу ли я вставить свой тег кнопки под тегом body (он должен быть сверху всей веб-страницы), не зная класс тега body?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...