xpath 的问题,不知道是不是我小白,但是查找不到相关的信息。描述在正文

2018-02-27 12:53:05 +08:00
 jakeyfly

比如: 我选取到 TABLE 里的 TR,保存给一个变量。这样得到一个列表,列表里的每个元素都是,一个 TR 对像(就是 LXML 对像,具体是啥记不得了。)

按我的理解来讲,这个列表里的每个元素再进行.xpath(//text()) 就是取到这行的所有文本信息。可实际上是他取到了 整个页面的所有 text(),这让我百思不得其解,我明明是节取到了 tr 了,tr 下面的 //text()难道不是取得这一行的文本吗?

到这里 我整个人都不好了。。。。。。

然后 我换了一种方试 改成 xxx.xpath(td/text()) 我 X 这样居然可以,顺利节取到了每行的文本信息。

可是~~~~~~~~~~~~~

定我疑惑的是,如果我在一开始,第一次选取 TR 的那时就写成 xxx.xpath(//table/tr/td//text())节取的却是这个 TR 下的 为什么我节取了 TR 后 保存为变量 再 //text()却是整个页面,,,,,,真的理解不了。

1117 次点击
所在节点    问与答
6 条回复
jakeyfly
2018-02-27 12:55:37 +08:00
还有,我 extract() 这个方法不管怎么用都 是说没这个属性。这是不是那个框架里的方法呀。我直接用 requests.get 到的不用 etree.HTML 也一样能用 xpath 是否 requests 内置 xpath
lance6716276
2018-02-27 13:13:05 +08:00
我也不能理解你说的“保存为变量”是怎么一个操作。上代码
lance6716276
2018-02-27 13:17:26 +08:00
哦突然看到 xpath 里最前面没加点…其实 po 不用说那么多内心戏的,直接贴代码解释就行了,排版看着舒服一点
imn1
2018-02-27 13:19:41 +08:00
.//text()
lgh
2018-02-27 13:23:30 +08:00
@imn1 #4 正解,要用相对路径了,不加.就是绝对路径
jakeyfly
2018-02-27 14:34:02 +08:00
@lgh 也就是说 xpath 像 ORM 一样 只要给一个节点 就能跳 到任何有关联的节点是吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/433088

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX