<分区>
<分区>
使用这个 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">“Goed,” zeide ik bij mij zelven, “als hij honger heeft, zal mijn oom, die de ongeduldigste mensch is, luide jammerkreten aanheffen.”</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
元素的文本。一种常见的方法是从树中删除style
和script
等元素,然后获取文本:
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/