010000 发表于 2024-11-4 16:49

prissionpage中如何过滤多余元素

f=page.eles('@@href^thread@@href$html')
print(f)

结果是
<ChromiumElement a href='thread-2412086-1-1.html' class='xi2'>, <ChromiumElement a href='thread-2412085-1-1.html' title='新窗口打
开' target='_blank'>, <ChromiumElement a href='thread-2412085-1-1.html' style='color: #EE1B2E;' onclick='if (!window.__cfRLUnblockHandlers) return false; atarget(this)'
class='s xst'>, <ChromiumElement a href='thread-2412085-1-1.html' class='xi2'>, <ChromiumElement a href='thread-2412081-1-1.html' title='新窗口打开' target='_blank'>, <ChromiumElement a href='thread-2412081-1-1.html' style='color: #EE1B2E;' onclick='if (!window.__cfRLUnblockHandlers) return false; atarget(this)' class='s xst'>, <ChromiumElement a href='thread-2412081-1-1.html' class='xi2'>,


要干净的提取href=‘thread-2412086-1-1.html’中的链接内容,要如何写呢?我发现用prissionpage的ele提取元素,自动都会带上ChromiumElement开头。

LightswornSnow 发表于 2024-11-5 09:14

eles返回的是元素,当然会有ChromiumElement开头。要提取href属性得用link
官网文档的获取元素信息部分就有 https://drissionpage.cn/browser_control/get_ele_info/
for i in f:
    print(i.link)

010000 发表于 2024-11-5 11:40

LightswornSnow 发表于 2024-11-5 09:14
eles返回的是元素,当然会有ChromiumElement开头。要提取href属性得用link
官网文档的获取元素信息部分就 ...

多谢指点,确实如您所说的还得取link属性

新手一枚,以前拼拼凑凑用的xpath路径还是能取到href的链接地址的。不知道是不是这个网站改版的缘故还是加入了反扒,现在无论用prissonpage还是webdriver的xpath,取出的都是一堆数据。

010000 发表于 2024-11-5 16:15

高手再指导下,运行
t=page.eles('xpath://span/span')

得到如下结果
[<ChromiumElement span class='pipe'>, <ChromiumElement span class='pipe'>, <ChromiumElement span class='pipe'>, <ChromiumElement span title='2024-11-05'>, <ChromiumElement span title='2024-11-05'>, <ChromiumElement span title='2024-11-05'>, <ChromiumElement span title='2024-11-05'>, <ChromiumElement span title='2024-11-05'>, <ChromiumElement span title='2024-11-05'>, <ChromiumElement span title='2024-11-05'>, <ChromiumElement span title='2024-11-05'>, <ChromiumElement span title='2024-11-05'>, <ChromiumElement span title='2024-11-05'>, <ChromiumElement span title='2024-11-05'>, <ChromiumElement span title='2024-11-05'>, <ChromiumElement span title='2024-11-05'>, <ChromiumElement span title='2024-11-05'>, <ChromiumElement span title='2024-11-05'>, <ChromiumElement span title='2024-11-05'>, <ChromiumElement span title='2024-11-05'>, <ChromiumElement span title='2024-11-05'>, <ChromiumElement span title='2024-11-05'>, <ChromiumElement span title='2024-11-05'>, <ChromiumElement span title='2024-11-05'>, <ChromiumElement span title='2024-11-05'>, <ChromiumElement span title='2024-11-05'>, <ChromiumElement span title='2024-11-05'>, <ChromiumElement span title='2024-11-05'>, <ChromiumElement span title='2024-11-05'>, <ChromiumElement span title='2024-11-05'>, <ChromiumElement span title='2024-11-05'>, <ChromiumElement span title='2024-11-05'>, <ChromiumElement span title='2024-11-04'>]

我想把其中的日期提取出来,要怎么操作呢?看了drisesspage的文档,感觉有点懵。

LightswornSnow 发表于 2024-11-5 20:24

本帖最后由 LightswornSnow 于 2024-11-5 20:25 编辑

010000 发表于 2024-11-5 16:15
高手再指导下,运行



也不知道页面什么样,只能盲猜。
日期在title属性里,获取元素信息用attr应该差不多。
另外不带日期的可以查找时在eles用否定匹配符@!忽略掉,或者查找结果拿filter过滤一下。

010000 发表于 2024-11-6 14:45

高手又说对了,确实用attr属性

pubdate=page.eles('xpath://span/span')
for i in range(0,len(pubdate)):
    pubdate=pubdate.attr('title')

说起来,这个prissonpage的查找是比较方便,可同时也比较跳跃,我一直以为title跟id一样用@(在旧的用webdrive的xpath确实是用@取得)。得多点例子去熟悉才行。我这靠着高人指点才能一天一个标签的完成。多谢了

网页不好意思贴出来了,不然我都去悬赏区摇人了。男人爱看的。
页: [1]
查看完整版本: prissionpage中如何过滤多余元素