解析 html 元素用哪个更好?我不要什么性能,爬虫最重要的是稳定,如果考虑网页改变这种可能性,哪个选择器的适应性更强? 我意思是网页如果改变了,但是不是那种大改,哪个更容易在不改爬虫代码的情况下更可能适应?
1
herozzm 2019-04-14 01:37:28 +08:00 via iPhone
都要
jquery 正则 json 必须好的 |
2
51300520 OP 我只想知道几率大小而已,虽然没有哪种可以百分之百不改代码,因为我以前一直是用 css 没用过 xpath,想找大家了解下,如果 xpath 适应性更强我就换成 xpath 的
|
3
51300520 OP @herozzm
很多时候只要一样就可以,我以前没用 xpath,一直用 css,基本没有定位不到的,既然如此我要选一个更健壮的 |
5
binux 2019-04-14 01:43:14 +08:00 via Android 1
是否健壮和用什么工具无关
|
6
51300520 OP @binux
是吗?假如我现在页面里面有一个 class 叫 test, 那我用 css 选就是 css(.test),但是它的路径是页面第三个元素,那我用 xpath 就可以用路径来选 html[3], 这两种情况健壮性怎么可能不一样呢,假如人家网页维护,test 类变成 demo 类,css 就选不到了,假如他路径没变,xpath 依然可以选到 |
7
herozzm 2019-04-14 01:52:12 +08:00 via iPhone
jquery 方式可以
|
9
loginbygoogle 2019-04-14 02:07:54 +08:00 via Android
无论什么 html 爬虫框架,如果网站本身的结构变了,都得改,没有一劳永逸的。
|
10
51300520 OP 刚看了下 xpath,发现这个问题提得多余了,这玩意和 css 功能绝大部分是重叠的,一个不行的话那另一个也不行
|
11
crab 2019-04-14 04:05:50 +08:00
直接正则也是可以。
|
12
Leigg 2019-04-14 08:11:04 +08:00 via iPhone
当然是都用。
|
13
Leigg 2019-04-14 08:11:21 +08:00 via iPhone
也并不复杂,一两天就学会了。
|
14
Leigg 2019-04-14 08:12:11 +08:00 via iPhone
大部分情况下用 css 的表达式很简单。
|
15
wedoub 2019-04-14 08:43:56 +08:00 via iPhone
正则表达式更好用我觉得
|
16
iyaozhen 2019-04-14 08:47:46 +08:00 via Android
页面变了,用啥都得改
我一般自动化测试用 css selector,方便和前端沟通 |
17
charlie21 2019-04-14 09:01:52 +08:00
用 CSS 选择器,当遇到 CSS 做不到的东西 的时候 再考虑 XPath
|
18
dsg001 2019-04-14 09:40:16 +08:00
混用,哪个方便用哪个
|
19
baitei 2019-04-14 15:20:57 +08:00
我是首先 css selector,简单。
页面变了大概率得改程序,做不到想一劳永逸。 程序代码适应性很差的,以后要是爬虫用上了深度学习,会智能很多哈。 |
20
hakono 2019-04-14 16:50:40 +08:00 via Android
正则就算了吧。。。。写出来过段时间都不知道写的表达式是什么玩意。。。加注释也没用
老老实实 css 选择器就行,稳定性这个无解。因为你不知道对方网站前端下次会把网页结构改成什么样子 解决办法其实挺简单的,把 css 选择器的字符串从代码中剥离,塞入单独的文件里,txt 啊,json 啊,数据库啊都行,从这些地方读取提取规则再匹配 实现起来是比直接写死在代码里复杂了那么点,但之后维护起来那就很爽了 |
21
bduqw 2019-04-15 10:06:25 +08:00 via Android
基本就是 CSS,不行就正则
|