[英]How to remove html tags from text using python?
我是使用 python 的新手,我正在尝试创建一个简单的脚本,从 Urban Dictionary 中打印出当天的单词。
import requests
from bs4 import BeautifulSoup
# requests urban dictionary home page
r = requests.get('https://www.urbandictionary.com')
soup = BeautifulSoup(r.text, 'html.parser')
# finds the title
title = soup.find('title').text
print(title)
# finds the definition
definition = soup.find('meta', attrs={'property': 'og:description'})
print(definition)
我使用“.text”作为标题来摆脱 html 标记并且它可以工作,但是当我尝试在定义上使用它时,所有文本都消失了。 因此,目前使用 html 标签打印出定义。 除了“.text”还有什么其他方法可以删除 html 标签。 当我尝试在这里粘贴 output 时,它的一部分没有显示出来,所以这里是 output 的图片。
这是我第一次在这里发帖,所以如果我没有正确格式化我的问题,我很抱歉,但任何帮助将不胜感激。
...当我尝试在定义上使用[
text
属性]时,所有文本都消失了...
这是因为您定位的标签如下所示:
<meta content="foo bar baz..." name="Description" property="og:description">
当您尝试在 Beautiful Soup 中访问此 object 的text
属性时,没有任何文本是该元素的子元素。 相反,您正在寻找提取“内容”属性,您可以使用方括号“数组”样式表示法:
definition['content']
此功能记录在 Beautiful Soup 文档的属性部分。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.