python - BeautifulSoup get_text() 函数包括 css

标签 python html css beautifulsoup

<分区>

使用这个 html:

<!DOCTYPE html
PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<style type="text/css">
    body
    {
    font-size: 190%/1.2em;
    margin: 1.58em 16% 1.58em 16%;
    }
</style>
</head>
<body>

<p id="d0e119">De goede Martha zou bijna gedacht hebben veel te laat te zijn, want het middageten was nauwelijks aan de kook op het fornuis
in de keuken.</p>
<p id="d0e121">&#8220;Goed,&#8221; zeide ik bij mij zelven, &#8220;als hij honger heeft, zal mijn oom, die de ongeduldigste mensch is, luide jammerkreten aanheffen.&#8221;</p>

 <p>Sacr\xe9 bleu!</p>
</body>
</html>

并运行这个 python 脚本:

    from bs4 import BeautifulSoup
    import codecs



  with codecs.open('test2.htm', encoding='utf-8') as fileHandle, codecs.open('fname.txt', 'w',encoding='utf-8') as outfile: 
        soup = BeautifulSoup(fileHandle, "lxml")
        print (soup.get_text())
        outfile.write(soup.get_text())
        fileHandle.close()
        outfile.close()

我得到这个输出:

    body
    {
    font-size: 190%/1.2em;
    margin: 1.58em 16% 1.58em 16%;
    }



De goede Martha zou bijna gedacht hebben veel te laat te zijn, want het middageten was nauwelijks aan de kook op het fornuis
in de keuken.
“Goed,” zeide ik bij mij zelven, “als hij honger heeft, zal mijn oom, die de ongeduldigste mensch is, luide jammerkreten aanheffen.”
Sacr\xe9 bleu!

为什么将样式信息提取为文本?我认为 get_text 只是获取文本(=正文标签中的内容?)

最佳答案

soup.get_text() 将收集页面上所有元素的文本。它不知道您不希望有 style 元素的文本。一种常见的方法是从树中删除stylescript 等元素,然后获取文本:

tags_to_remove = ['script', 'style']
for tag in soup.find_all(tags_to_remove):
     tag.extract()

print(soup.get_text())

关于python - BeautifulSoup get_text() 函数包括 css,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35565476/

上一篇:html - clearfix 不适用于绝对位置

下一篇:java - 如何使用 selenium 2 定位一个没有唯一标识符(如 Name、Id)的元素

相关文章:

javascript - 无法让 onclick 事件在 WordPress 中工作

python - QFileSystemModel QTableView 日期修改突出显示

Python 脚本在第一次迭代后中断

html - 将底部环绕的文本对齐到图像的左侧

html - CSS - 如果溢出则锁定滚动条

javascript - 使用图像而不是单选按钮并获取选中的值并将其传递给 h2 标签

asp.net - 我怎样才能改变滚动条的样式

python - openpyxl if 带引用的条件公式失败

python - 在 pandas 中查找匹配的列,包括 NaN

javascript - jQuery - 一张一张地显示div