Python 3.x 为什么美丽集团';s contents方法返回带括号和引号的文本,而text方法只返回纯文本
我正在使用Python3和Beautifulsoup从网页上删除公司名称。当我使用“contents”方法提取标记的内容时,它返回带括号和单引号的文本(例如,['Company a']),而“text”方法只返回Company a。为什么函数会这样做?我意识到这可能是一个愚蠢的问题,但我是新来的,已经试着四处寻找。见下文:Python 3.x 为什么美丽集团';s contents方法返回带括号和引号的文本,而text方法只返回纯文本,python-3.x,beautifulsoup,Python 3.x,Beautifulsoup,我正在使用Python3和Beautifulsoup从网页上删除公司名称。当我使用“contents”方法提取标记的内容时,它返回带括号和单引号的文本(例如,['Company a']),而“text”方法只返回Company a。为什么函数会这样做?我意识到这可能是一个愚蠢的问题,但我是新来的,已经试着四处寻找。见下文: entity_name = bsObj2.find(class_='span-16 first') entity_name_item = entity_name.find
entity_name = bsObj2.find(class_='span-16 first')
entity_name_item = entity_name.find('h1')
entity_name_item = entity_name_item.contents
print(entity_name_item)
返回:
['Company A']
Company A
鉴于:
entity_name = bsObj2.find(class_='span-16 first')
entity_name_item = entity_name.find('h1')
entity_name_item = entity_name_item.text
print(entity_name_item)
返回:
['Company A']
Company A
contents
为您提供一个包含标记子项的列表,而text
为您提供标记的文本。contents
以Python列表的形式返回查找的所有结果,而text
为您提供以Python字符串的形式查找的文本值。例如,在以下HTML中:
<div>Header
<h1>Header2</h1>
</div>
标题
校长2
使用Beautiful Soup解析它并调用result=Soup.find('div')
返回一个BeautifulSoup
对象。对该对象调用contents
将返回该标记及其所有子项的列表,即result.contents=['Header','Header2']
和type(result)
返回
。但是text
以人类可读的格式以字符串的形式返回内容,因此您会得到类似result.text==“Header Header2
和type(result)
的内容。要获得预期的行为,请尝试将.contents
更改为.contents[0]
因为.contents
返回项目或列表的数组。