jakeyfly
V2EX  ›  问与答

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

  •  
  •   jakeyfly · Feb 27, 2018 · 1553 views
    This topic created in 3016 days ago, the information mentioned may be changed or developed.

    比如: 我选取到 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 replies    2018-02-27 14:34:02 +08:00
    jakeyfly
        1
    jakeyfly  
    OP
       Feb 27, 2018
    还有,我 extract() 这个方法不管怎么用都 是说没这个属性。这是不是那个框架里的方法呀。我直接用 requests.get 到的不用 etree.HTML 也一样能用 xpath 是否 requests 内置 xpath
    lance6716276
        2
    lance6716276  
       Feb 27, 2018 via Android
    我也不能理解你说的“保存为变量”是怎么一个操作。上代码
    lance6716276
        3
    lance6716276  
       Feb 27, 2018 via Android
    哦突然看到 xpath 里最前面没加点…其实 po 不用说那么多内心戏的,直接贴代码解释就行了,排版看着舒服一点
    imn1
        4
    imn1  
       Feb 27, 2018
    .//text()
    lgh
        5
    lgh  
       Feb 27, 2018 via iPhone
    @imn1 #4 正解,要用相对路径了,不加.就是绝对路径
    jakeyfly
        6
    jakeyfly  
    OP
       Feb 27, 2018
    @lgh 也就是说 xpath 像 ORM 一样 只要给一个节点 就能跳 到任何有关联的节点是吧
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   963 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 5414617a · 40ms · UTC 20:43 · PVG 04:43 · LAX 13:43 · JFK 16:43
    ♥ Do have faith in what you're doing.