比如这个网站: https://www.smm.cn/ ,然后通过页面查看的数据是正确的,程序抓到的值就是错的,这些错误的元素都有一个 css,class="change_price"。
1
oyhw92 2018-08-13 15:57:23 +08:00
css 修改了字体,字体里面改了字形
比如说字符 `3` 在这个字体里面看起来是 `9` |
2
3CH0 2018-08-13 16:04:02 +08:00
font-family: 'font2regular'
|
3
ytf513 OP 谢谢,看了一下,确实是这样的。知道了这个对应关系也可以解决了,但是这个对应关系也可能会调整的,所以有没有什么稳定的解决办法?
|
4
wizardoz 2018-08-13 16:05:28 +08:00
长见识了
|
5
zythum 2018-08-13 16:07:17 +08:00 3
你看下 change_price 下面的样式,里面应用了一个字体,你在看这个字体。
这个是典型的字体防抓站的效果,但是很容易 mapping 1234567890 => 2071386549 但是这个 mapping 关系不是容易修改字体而改变么。所以你可以每次抓的时候连同字体文件一并抓下来。 如果真不信就上 ocr,对于这种纯数字很成熟的。 |
8
twocold0451 2018-08-13 16:34:26 +08:00
还有这种操作,长见识。
|
9
leafiy 2018-08-13 16:50:23 +08:00
天才,学习了
|
10
jasonyang9 2018-08-13 16:59:17 +08:00
找到映射关系直接逆向,666
|
11
AJian 2018-08-13 18:19:34 +08:00
|
12
JHerschel 2018-08-13 18:33:35 +08:00 via iPhone
字体防抓,666。
|
13
ArtsXiaoLu 2018-08-13 18:43:46 +08:00
确实是他所用的 font2regular 字体问题,
这个还是不要去修改他的字体, 否则无论你怎么去复制,一旦进入到其他编辑状态下,字体一变都是错误的 他正常输入数据,用程序 /字体反译到网页数据,然后又通过这款字体再解回到显示页面 所以你只能在抓取数据后再替换一下 如在 Excel 或批处理中通过定义命令,替换成正确数据才可以正常复制剪切使用 具体替换参数见 5 楼数据 |
14
keventseng 2018-08-13 19:47:00 +08:00
抓取的时候数字替换一下就行了。
|
15
Sparetire 2018-08-14 02:53:13 +08:00 via Android
|
17
M003 2018-08-14 15:20:35 +08:00
如果对应关系经常换就没什么想法
刚才人肉修改了下 文本节点: 0123456789 显示: 9207138654 ![]( ) 字体文件也是这样对应的.. |
18
ytf513 OP |