将find_all美丽的汤标签组合成一个字符串

时间:2018-05-23 10:54:12

标签: python html web-scraping beautifulsoup

我正在使用beautifulsoup和html解析器执行刮擦,并选择了我想要使用的html部分并将其保存为“容器”。

from urllib.request import urlopen as uReq
from bs4 import BeautifulSoup as soup
import ssl

my_url = 'https://www._________.co.uk/'
context = ssl._create_unverified_context()
uClient = uReq(my_url, context=context)
page_html = uClient.read()
uClient.close()

page_soup = soup(page_html, "html.parser")
containers = page_soup.findAll("div",{"class":"row"})

当涉及到几个标签时,我遇到了挑战。这些标签在一个范围内彼此相邻。

我可以使用

调出结果
company_string = container.span.find_all("b")

返回以下内容:

[<b>Company</b>, <b>Name</b>, <b>Limited</b>]

我如何抛弃标签并将它们组合成一个字符串,以便输出为“公司名称限制”?

原始html在这里:

<span class="company">
<a href="/cmp/Company-Name-Limited" onmousedown="this.href = 
appendParamsOnce(this.href, 'xxxx')" rel="noopener" target="_blank">
<b>Company</b> <b>Name</b> <b>Limited</b>
</a>
</span>

2 个答案:

答案 0 :(得分:3)

使用.text

>>> output = ' '.join([item.text for item in company_string])
'Company Name Limited'

答案 1 :(得分:0)

尝试以下方法: -

outputString = ' '.join([item.get_text() for item in company_string])

它将返回一个字符串,其中包含与空格连接的所有元素的值。