V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
jakeyfly
V2EX  ›  问与答

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

  •  
  •   jakeyfly · 2018-02-27 12:53:05 +08:00 · 1126 次点击
    这是一个创建于 2472 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如: 我选取到 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()却是整个页面,,,,,,真的理解不了。

    6 条回复    2018-02-27 14:34:02 +08:00
    jakeyfly
        1
    jakeyfly  
    OP
       2018-02-27 12:55:37 +08:00
    还有,我 extract() 这个方法不管怎么用都 是说没这个属性。这是不是那个框架里的方法呀。我直接用 requests.get 到的不用 etree.HTML 也一样能用 xpath 是否 requests 内置 xpath
    lance6716276
        2
    lance6716276  
       2018-02-27 13:13:05 +08:00 via Android
    我也不能理解你说的“保存为变量”是怎么一个操作。上代码
    lance6716276
        3
    lance6716276  
       2018-02-27 13:17:26 +08:00 via Android
    哦突然看到 xpath 里最前面没加点…其实 po 不用说那么多内心戏的,直接贴代码解释就行了,排版看着舒服一点
    imn1
        4
    imn1  
       2018-02-27 13:19:41 +08:00
    .//text()
    lgh
        5
    lgh  
       2018-02-27 13:23:30 +08:00 via iPhone
    @imn1 #4 正解,要用相对路径了,不加.就是绝对路径
    jakeyfly
        6
    jakeyfly  
    OP
       2018-02-27 14:34:02 +08:00
    @lgh 也就是说 xpath 像 ORM 一样 只要给一个节点 就能跳 到任何有关联的节点是吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5876 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 02:26 · PVG 10:26 · LAX 18:26 · JFK 21:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.