【问题标题】:get encoded content from an div using soup使用汤从 div 获取编码内容
【发布时间】:2012-10-07 07:01:06
【问题描述】:

我需要字符串 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])但如果该剂量不起作用,请随时告诉我。 谢谢。

【问题讨论】:

  • 可以用正则表达式吗?
  • No def handle_SKU(data): #grabs SKU of item soup = BeautifulSoup("
    SKU:jjfjg
    ")#normaly data gose here info = soup .find('span', class='name').contents return(info) 是我现在正在尝试的,但没有占上风,但这有效... def item_name(data): #grabs name of item soup = BeautifulSoup(数据) info = soup.find('span', itemprop='name').contents return(info)

标签: python get find beautifulsoup encode


【解决方案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'

【讨论】:

  • 不,它现在只是锁定了,当我的程序遇到代码时它停止没有错误只是停止响应我正在使用 BS 4、apache 2 和 python 2.7、windows 7 ualt... 我导入流动导入 cgi、cgitb、fileinput、Cookie、os、datetime、sys、urllib2、urllib 从 SimpleHTTPServer 导入 BaseHTTPServer 从 bs4 导入 SimpleHTTPRequestHandler 导入 BeautifulSoup
  • 如果你想看到它的所有文件,请等待它在我的程序的其余部分之外运行它是一个 zip link 谢谢你的时间。
  • @RexFenderBaird 你的代码对我来说运行良好:→ python scaner.py Content-type: text/html [u'Glass Lens Screen with Tools Kit Set for iPhone 4 Black'] [u'LCD Touch Screen Replacement Assembly with Bezel Frame for iPhone 4 GSM Version Dark Blue'] info: Thumb load, URL list in
  • @RexFenderBaird 唯一的问题是你可能应该打印handle_SKU(page) 而不是item_SKU(),对我来说它返回u'BD005006'
  • 哇,我不敢相信我没有注意到!也许我只是需要睡觉@Kay Zhu
猜你喜欢
  • 1970-01-01
  • 2016-04-05
  • 1970-01-01
  • 2014-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-12
相关资源
最近更新 更多