使用汤从div获取编码内容

时间:2012-10-07 07:01:07

标签: python get find beautifulsoup encode

我需要字符串SKU:E02165女巫以某种方式编码为

SKU: E02165  

通过某种方式,这里是来自网站的完整div海峡

<div class="sku">SKU:&nbsp;E02165&nbsp;&nbsp;</div>

我试过了

soup = BeautifulSoup(data)
info = soup.find('div' , {'class':'sku'}).contents

以及所有流动的

info = soup.findAll('div', { "class" : "sku"})
info = soup.find('div' , class='sku'}).contents
info = soup.find('div' , "class=" + 'sku'}).contents
info = soup.find('div' , {'class':'sku'}).text
info = soup.find('div' , {'class':'sku'}).contents

如果你可以帮助我将数字“sku:”从数字中分开,我认为我可以使用info =(info.split('sku:')[1])但如果该剂量工作随时让我知道。 谢谢。

1 个答案:

答案 0 :(得分:1)

试试这个:

>>> div = '<div class="sku">SKU:&nbsp;E02165&nbsp;&nbsp;</div>'
>>> html = BeautifulSoup(div)
>>> div_sku = html.find('div', {'class': 'sku'})
>>> value = div_sku.get_text(strip=True).encode('ascii', 'ignore').split('SKU:')[1]
>>> value
'E02165'

get_text(strip=True)将从开头和结尾处删除带有空格的文档或标记的文本部分。

encode('ascii', 'ignore')会忽略文本中的unicode u'\xa0',因此允许split()返回准确的结果。

或者,你也可以简单地做:

value =div_sku.get_text(strip=True).replace(u'\xa0', u'').split('SKU:')[1]

其中replace(u'\xa0', u'')将使用空的unicode字符串替换u'\xa0'