我正在尝试编写一个网页转换器,将脚本和其他标签添加到网页的HEAD,以及标记正文中的内容。我正在使用BeautifulSoup。但是,当我将元素附加到HEAD标记时,输出将在后面立即添加一个close标记,因此BODY变为不可见。
将BASE标记添加到HEAD并打算将页面文本中的第三个单词加粗的简化代码如下:
def highlight(url):
page = requests.get(url)
page_soup = BeautifulSoup(page.content, 'html.parser')
header = page_soup.find('head')
base_string = "<base href=\"" + url + "\"/>"
base_soup = BeautifulSoup(base_string,'html.parser')
header.append(base_soup)
para_list = page_soup.find_all('p')
for para in para_list:
result = ''
sent_text = nltk.sent_tokenize(para.text)
for sent in sent_text:
tokens = nltk.word_tokenize(sent)
position = 0
for token in tokens:
if position % 3 == 0:
text = BOLD(noun, sys1, number)
result += text
else:
result += noun + ' '
position += 1
para.replaceWith(BeautifulSoup(result, 'html.parser'))
return page_soup
这不会加粗字体,因为在头部之后立即添加了一个close标签,因此在体内找不到任何内容。如果我删除了header.append(base_soup)
,则粗体字可以正常工作。
该如何解决?