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

2016-08-18 11:18:44 +08:00
 xiaoyu9527

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

2695 次点击
所在节点    问与答
17 条回复
loading
2016-08-18 11:44:55 +08:00
能用就行啦,别人是自己优化过的, chrome 是自动的,当然不同。
lgh
2016-08-18 12:28:53 +08:00
用 XPath 定位某个元素的方法可能有无数种,但软件只能死板地生成一种,你觉得能让你满意的概率有多大?
zencoding
2016-08-18 14:28:44 +08:00
有 chrome 扩展,一直在用
xiaoyu9527
2016-08-18 14:37:08 +08:00
@zencoding 哪个扩展
imn1
2016-08-18 15:13:37 +08:00
同一个元素有很多种 xpath 写法的
wgx
2016-08-18 15:48:09 +08:00
您好,请问最近有看机会吗?国内 最大 的跨境快时尚电商公司 shein 招聘后台技术总监(带团队, python 开发),经验要求 5-10 年, 25k-40k ,五天七小时,下午茶,季度旅游,坐标深圳南山大学城。联系微信: 13226230923 ,邮箱 wgxin@dotfashion.cn
changshu
2016-08-18 15:59:19 +08:00
对于抓取 html 后的 xpath 选取, 以实调 html 为准, 浏览器 f12 提供的仅能做参考
changshu
2016-08-18 16:00:57 +08:00
原因忘写了

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

二浏览器会对抓取到的 html 做一定程度的修正, 和你抓到的原生 html 也有可能不一致
xiaoyu9527
2016-08-18 16:16:36 +08:00
@wgx 资格不够呀。


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

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

//h2/a/@href

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

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

@href 这个是什么意思?
laoyur
2016-08-18 17:01:33 +08:00
@xiaoyu9527 那还是建议你去看看 xpath 手册
@href 的意思是 a 的 href 属性啊
xiaoyu9527
2016-08-18 18:37:17 +08:00
@laoyur 我看了。。
changshu
2016-08-18 20:27:53 +08:00
@xiaoyu9527

第一个是获取元素

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

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

一切以调试你获取的 html 为准, 别多管 chrome 给的提升.
xiaoyu9527
2016-08-19 00:28:27 +08:00
@changshu 学习到了。

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

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

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

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

© 2021 V2EX