鱼C论坛

 找回密码
 立即注册
查看: 705|回复: 7

python中pyquery伪类选择器问题

[复制链接]
发表于 2024-3-14 17:08:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
python中pyquery伪类选择器问题

部分代码如下:
tex = py("#category_ > table > tbody > tr.fl_row > td:nth-child(1) > div > div > a")

我想把nth-child(1) 选择前4个元素,也就是1-4的元素,该怎么写呢?

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-3-14 17:09:03 | 显示全部楼层
在pyquery中,要选择前4个元素可以使用 `:lt()` 伪类选择器。 `:lt(n)` 表示选择索引小于n的元素,其中索引从0开始计数。

对于你的代码,要选择前4个元素可以这样写:
tex = py("#category_ > table > tbody > tr.fl_row > td:nth-child(1) > div > div > a:lt(4)")

这样就能选择到索引为0、1、2、3的元素,也就是前4个元素了。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-3-14 17:13:17 | 显示全部楼层
FishC 发表于 2024-3-14 17:09
在pyquery中,要选择前4个元素可以使用 `:lt()` 伪类选择器。 `:lt(n)` 表示选择索引小于n的元素,其中索引 ...

不是我想要的结果
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-3-14 17:13:29 | 显示全部楼层


抱歉,我理解错了你的问题。要选择前4个元素,可以使用 `:lt(4)` 伪类选择器。你可以按照以下方式修改代码:

tex = py("#category_ > table > tbody > tr.fl_row > td:nth-child(1) > div > div > a:lt(4)")

这样就能选择到前4个索引位置的元素了。注意,这里索引是从0开始计数的,所以`:lt(4)`表示选择索引为0、1、2、3的元素。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-3-14 17:21:49 | 显示全部楼层
FishC 发表于 2024-3-14 17:13
抱歉,我理解错了你的问题。要选择前4个元素,可以使用 `:lt(4)` 伪类选择器。你可以按照以下方式修改 ...

我想获取的不是a的前4个元素,而是td:nth-child(1)前4个元素
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-3-14 17:22:00 | 显示全部楼层
python小小白哟 发表于 2024-03-14 17:21
我想获取的不是a的前4个元素,而是td:nth-child(1)前4 ...


抱歉,我理解错了你的问题。要选择前4个 td:nth-child(1) 元素,可以使用 `.eq()` 方法。`.eq(n)` 表示选择索引为 n 的元素,其中索引从0开始计数。对于你的代码,要选择前4个 td:nth-child(1) 元素可以这样写:
tex = py("#category_ > table > tbody > tr.fl_row > td:nth-child(1)").eq(0, 1, 2, 3)

这样就能选择到索引为 0、1、2、3 的 td:nth-child(1) 元素,也就是前4个元素了。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-3-14 17:25:30 | 显示全部楼层
FishC 发表于 2024-3-14 17:22
抱歉,我理解错了你的问题。要选择前4个 td:nth-child(1) 元素,可以使用 `.eq()` 方法。`.eq(n)` 表示 ...
td:nth-child(-n+4)
百度这个答案才是我想要的结果,但是不了解具体是什么含义,可以给我解释下吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-3-14 17:25:49 | 显示全部楼层
python小小白哟 发表于 2024-03-14 17:25
td:nth-child(-n+4)
百度这个答案才是我想要的结果, ...


当使用 `td:nth-child(-n+4)` 选择器时,它的含义是选择前4个 td 元素。让我们来解释一下这个选择器的具体含义。

首先,`:nth-child()` 是一个 CSS 伪类选择器,用于选择指定父元素下的特定子元素。在这里, `td:nth-child(-n+4)` 表示选择父元素中的 td 元素,但仅限于索引小于等于4的子元素。现在让我们分解这个选择器的各个部分:

- `:`:表示伪类选择器的开始。
- `nth-child()`:表示选择子元素的索引。
- `-n+4`:表示选择索引小于等于4的子元素。

前面的 `-n` 表示选择所有索引为负数的子元素,然后 `+4` 表示选择索引大于等于4的子元素,大致的意思就是选择所有索引小于等于4的子元素。

因此,`td:nth-child(-n+4)` 就是选择前4个 td 元素的意思,即选择索引为1、2、3、4的 td 元素。

希望这个解释能帮助你理解这个选择器的含义!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-15 10:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表