【发布时间】:2020-03-08 08:01:57
【问题描述】:
我需要帮助从我的脚本结果中解析出HTML 标记。我想将结果放在一个对象中以转换为 json。当我打印对象时,一切正常,除了我不能只提取没有 html 标记的文本。我一直在这个网站上搜索答案并尝试了各种方法来删除标签,但我不确定我做错了什么。感谢您的帮助。
根据我在这里阅读的一些内容,我尝试打印 teamObject.text 但这不起作用。
def make_soup(url):
page = requests.get(url)
soup = BeautifulSoup(page.content, 'html.parser')
return soup
soup = make_soup("team.html")
for record in soup.findAll('tr'):
teamObject = {"name": record.find('a'),"description": record.find('p')}
print (teamObject)
我希望在没有 html 标记的对象形式中看到结果。
按 cmets 更新:
我目前看到的只是打印我上面的代码的结果是:
{'name': <a href="/team/001"> Team 1 </a>, 'description': <p><a href="/team/001">Team 1</a> is a team does cool things.</p>}
更新代码以包含 .text:
def make_soup(url):
page = requests.get(url)
soup = BeautifulSoup(page.content, 'html.parser')
return soup
soup = make_soup("team.html")
for record in soup.findAll('tr'):
teamObject = {
"name": record.find('a').text,
"description": record.find('p').text
}
print (teamObject)
我得到这个结果:
"name": record.find('a').text,
AttributeError: 'NoneType' object has no attribute 'text'
我希望只看到没有 html 标记的文本。
【问题讨论】:
-
用当前和预期的结果更新帖子,让读者有一个清晰的想法。
-
使用 soup.get_text() 怎么样,这应该只返回内容中的文本。
-
根据建议更新
标签: python html web-scraping beautifulsoup tags