xiaoyu9527
V2EX  ›  问与答

xpath 用什么软件能准确抓取?

  •  
  •   xiaoyu9527 · Aug 18, 2016 · 4015 views
    This topic created in 3733 days ago, the information mentioned may be changed or developed.

    我用 chrome 的 F12 抓 xpath 感觉跟别人写的不一样呀。

    17 replies  •  2016-08-19 00:28:27 +08:00
    loading
    loading
    Aug 18, 2016 via Android
    1
    能用就行啦,别人是自己优化过的, chrome 是自动的,当然不同。
    lgh
    lgh
    Aug 18, 2016
    2
    用 XPath 定位某个元素的方法可能有无数种,但软件只能死板地生成一种,你觉得能让你满意的概率有多大?
    zencoding
    zencoding
    Aug 18, 2016 via Android
    3
    有 chrome 扩展,一直在用
    xiaoyu9527
    xiaoyu9527
    OP
    Aug 18, 2016
    4
    @zencoding 哪个扩展
    imn1
    imn1
    Aug 18, 2016
    5
    同一个元素有很多种 xpath 写法的
    wgx
    wgx
    Aug 18, 2016
    6
    您好,请问最近有看机会吗?国内 最大 的跨境快时尚电商公司 shein 招聘后台技术总监(带团队, python 开发),经验要求 5-10 年, 25k-40k ,五天七小时,下午茶,季度旅游,坐标深圳南山大学城。联系微信: 13226230923 ,邮箱 [email protected]
    changshu
    changshu
    Aug 18, 2016
    7
    对于抓取 html 后的 xpath 选取, 以实调 html 为准, 浏览器 f12 提供的仅能做参考
    changshu
    changshu
    Aug 18, 2016
    8
    原因忘写了

    一来浏览器提供的 dom 树可能被 js 修改过, 和你抓到的原生 html 不一致

    二浏览器会对抓取到的 html 做一定程度的修正, 和你抓到的原生 html 也有可能不一致
    xiaoyu9527
    xiaoyu9527
    OP
    Aug 18, 2016
    9
    @wgx 资格不够呀。


    @changshu 请能帮我分析一下有啥不一样么? 我贴个例子

    //*[@id="maincontent"]/div[1]/div[1]/h2/a 我用 F12 COPY 出来是这样

    //h2/a/@href

    而这个蜘蛛的作者写的是这样。 虽然我看的明白 后者就是 //h2/a/href 跟我 最后两段一样。

    但是我不明白 如果我复制出来的这种 应该怎么写呢
    prefere
    prefere
    Aug 18, 2016
    10
    // 从非根任意节点开始匹配
    * 匹配任意元素
    [@] 属性选择器
    [index] 匹配第 index-1 个元素
    laoyur
    laoyur
    Aug 18, 2016
    11
    @xiaoyu9527 『如果我复制出来的这种 应该怎么写呢』
    没看懂你在问什么, 5 楼已经说了,同一个元素的 xpath 有 N 种写法,你要测试自己写的对不对,直接在 Elements tab 下按 Ctrl + F 搜索,然后输入你自己写的就行了
    prefere
    prefere
    Aug 18, 2016
    12
    更正:最后一条错了,[index] 匹配第 index 个元素。
    xiaoyu9527
    xiaoyu9527
    OP
    Aug 18, 2016
    13
    //div[1]/ul/*/div/h3/a 为什么这样抓不出来连接
    //div[1]/ul/*/div/h3/a/@href 就可以抓出来链接

    @href 这个是什么意思?
    laoyur
    laoyur
    Aug 18, 2016
    14
    @xiaoyu9527 那还是建议你去看看 xpath 手册
    @href 的意思是 a 的 href 属性啊
    xiaoyu9527
    xiaoyu9527
    OP
    Aug 18, 2016
    15
    @laoyur 我看了。。
    changshu
    changshu
    Aug 18, 2016
    16
    @xiaoyu9527

    第一个是获取元素

    第二个是获取某元素的 href 属性

    xpath 本身的写法比较多, 好像老王的儿子也可以是老张的邻居一样, 没什么唯一的写法.

    一切以调试你获取的 html 为准, 别多管 chrome 给的提升.
    xiaoyu9527
    xiaoyu9527
    OP
    Aug 19, 2016
    17
    @changshu 学习到了。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1505 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 01:13 · PVG 09:13 · LAX 17:13 · JFK 20:13
    ♥ Do have faith in what you're doing.