为什么在BeautifulSoup中添加到head标签后,在HEAD之后立即关闭HTML标签?

时间:2018-07-02 15:16:56

标签: python html beautifulsoup

我正在尝试编写一个网页转换器,将脚本和其他标签添加到网页的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),则粗体字可以正常工作。

该如何解决?

0 个答案:

没有答案