>我有一个值需要从div标签中获取。在div中有一个<p>
,<span>
和<input>
。当我写出主<div>
的find_all
结果时,我可以看到我想要得到的一切。但是当我在该主div 中查找所有<span>
标签时,我需要的标签在结果中不存在/返回。
这是页面源代码上的实际内容
<div class="video-details">
<p>Web ID: <span itemprop="sku">15COLU2BRNRSTVXXXCAC</span></p>
<span id="SkuDisplay">
<p> SKU: 12139884</p>
</span>
<input type="hidden" id="selectedSku" value="660852" autocomplete="off">
</div>
这就是我现在所拥有的,它将返回除<p> SKU </p>
行之外的所有内容(spanSKUitems(
for spanSKUitems in soup.find_all('div',class_="video-details"):
for spanSKUitem in spanSKUitems.find_all('span'):
strspanSKUitem = str(spanSKUitem.get_text())
if 'SKU:' in strspanSKUitem:
bidx = strspanSKUitem.index(':')+1
lidx = len(strspanSKUitem)
dets['sku']=strspanSKUitem[bidx:lidx].lstrip()
这是包含在spanSKUitems
中的内容:
<div class="video-details">
<p>Web ID: <span itemprop="sku">15COLU2BRNRSTVXXXCAC</span></p>
<span id="SkuDisplay"></span>
<input id="selectedSku" type="hidden" value=""/></div>
我错过了什么或做错了什么?我需要得到的是这个标签<p> SKU: 12139884</p>
?
以下内容基于您提供的其他 html 工作。数据位于具有不同 id 的 span 标记字符串中。您可以使用 json 加载,然后提取:
import json
data = soup.select_one('#skuDescriptivattribute').text
data = json.loads(data)
print(data['descriptive'][0]['partNumber'])