所以我尝试排除(不是提取)包含在span中的信息。
<li><span>Type:</span> Cardiac Ultrasound</li>
下面是我的代码:
item_description_infos = listing_soup.find(class_='item_description').find_all('li')
for description_el in item_description_infos:
description_elements = description_el.find('span')
for el in description_elements:
curr_el = {}
key = el.replace(':', '')
print(el)
print(description_el.text.replace(' ', ''))
其中列出汤基本上是整个页面(在我的例子HTML)当我这样做,我得到:
Type:
Type: CardiacUltrasound
正如您所看到的,由于某些特殊的原因:P,span
不受我的replace()
方法的影响,即使.text
生成str
编辑:抱歉,我的目标是创建一堆dictionnaries
,其中key
是span
,value
是它后面的span
。
2条答案
按热度按时间nx7onnlm1#
注意:创建一堆字典时要小心,因为字典不能有重复的键。但是你可以有一个字典列表,在这种情况下,这并不重要(在每个字典中仍然重要)。
使用
.next_sibling()
只需要从
description_el
中得到文本,.split(':')
,然后你就得到了你想要的2个元素(如果我没理解错你的问题的话)。获取
<span>
文本,将其删除,然后获取<li>
中剩余的文本。尽管由于您不想提取,可能对您没有用。j7dteeu82#
要提取不包括子标签内容的标签文本,可以使用this应答中的方法。通常情况下,只需迭代
<li>
标签,并从包含子标签<span>
的标签中获取文本。代码: