lxml cssselect 解析

2 投票
2 回答
16003 浏览
提问于 2025-04-16 11:18

我有一个文档,里面有以下数据:

<div class="ds-list">
    <b>1. </b> 
    A domesticated carnivorous mammal 
    <i>(Canis familiaris)</i> 
    related to the foxes and wolves and raised in a wide variety of breeds.
</div>

我想要获取所有在类名为 ds-list 的部分(不包括 <b><i> 标签)。目前我的代码是 doc.cssselect('div.ds-list'),但这样做只抓到了 <b> 前面的换行符。我该怎么做才能实现我想要的效果呢?

2 个回答

1

在编程中,有时候我们需要处理一些数据,比如从一个地方获取数据,然后在另一个地方使用这些数据。这个过程就像是把水从一个水桶倒到另一个水桶里。

有些时候,我们会遇到一些问题,比如数据的格式不对,或者数据的类型不匹配。这就像是你想把牛奶倒进一个只适合倒水的瓶子里,这样就会出问题。

为了避免这些问题,我们需要确保在处理数据之前,先检查一下数据的类型和格式。这样可以确保我们在使用数据的时候不会出错,就像在倒水之前先确认瓶子是干净的。

总之,处理数据的时候要小心,确保每一步都是正确的,这样才能顺利完成任务。

doc.cssselect("div.ds-list").text_content()
10

也许你在找 text_content 这个方法吧?

import lxml.html as lh
content='''\
<div class="ds-list">
    <b>1. </b> 
    A domesticated carnivorous mammal 
    <i>(Canis familiaris)</i> 
    related to the foxes and wolves and raised in a wide variety of breeds.
</div>'''
doc=lh.fromstring(content)
for div in doc.cssselect('div.ds-list'):
    print(div.text_content())

会返回

1.  
A domesticated carnivorous mammal 
(Canis familiaris) 
related to the foxes and wolves and raised in a wide variety of breeds.

撰写回答