V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
ytf513
V2EX  ›  Python

通过 CSS 改变显示给网页用户的数据,这个是如何实现的?又如何能获取到真实的数据?

  •  
  •   ytf513 · 2018-08-13 15:49:11 +08:00 · 3173 次点击
    这是一个创建于 2280 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如这个网站: https://www.smm.cn/ ,然后通过页面查看的数据是正确的,程序抓到的值就是错的,这些错误的元素都有一个 css,class="change_price"。

    18 条回复    2018-11-25 22:50:56 +08:00
    oyhw92
        1
    oyhw92  
       2018-08-13 15:57:23 +08:00
    css 修改了字体,字体里面改了字形

    比如说字符 `3` 在这个字体里面看起来是 `9`
    3CH0
        2
    3CH0  
       2018-08-13 16:04:02 +08:00
    font-family: 'font2regular'
    ytf513
        3
    ytf513  
    OP
       2018-08-13 16:04:30 +08:00
    谢谢,看了一下,确实是这样的。知道了这个对应关系也可以解决了,但是这个对应关系也可能会调整的,所以有没有什么稳定的解决办法?
    wizardoz
        4
    wizardoz  
       2018-08-13 16:05:28 +08:00
    长见识了
    zythum
        5
    zythum  
       2018-08-13 16:07:17 +08:00   ❤️ 3
    你看下 change_price 下面的样式,里面应用了一个字体,你在看这个字体。

    这个是典型的字体防抓站的效果,但是很容易 mapping 1234567890 => 2071386549

    但是这个 mapping 关系不是容易修改字体而改变么。所以你可以每次抓的时候连同字体文件一并抓下来。

    如果真不信就上 ocr,对于这种纯数字很成熟的。
    ytf513
        6
    ytf513  
    OP
       2018-08-13 16:14:53 +08:00
    @zythum 谢谢,不太理解,1.连同字体文件都抓取过来; 2.上 OCR 是两种解决方法?
    ytf513
        7
    ytf513  
    OP
       2018-08-13 16:32:33 +08:00
    OK,知道了,目前最好的解决办法只能这样吗?解析字体文件?
    @zythum
    twocold0451
        8
    twocold0451  
       2018-08-13 16:34:26 +08:00
    还有这种操作,长见识。
    leafiy
        9
    leafiy  
       2018-08-13 16:50:23 +08:00
    天才,学习了
    jasonyang9
        10
    jasonyang9  
       2018-08-13 16:59:17 +08:00
    找到映射关系直接逆向,666
    AJian
        11
    AJian  
       2018-08-13 18:19:34 +08:00
    JHerschel
        12
    JHerschel  
       2018-08-13 18:33:35 +08:00 via iPhone
    字体防抓,666。
    ArtsXiaoLu
        13
    ArtsXiaoLu  
       2018-08-13 18:43:46 +08:00
    确实是他所用的 font2regular 字体问题,
    这个还是不要去修改他的字体,
    否则无论你怎么去复制,一旦进入到其他编辑状态下,字体一变都是错误的

    他正常输入数据,用程序 /字体反译到网页数据,然后又通过这款字体再解回到显示页面
    所以你只能在抓取数据后再替换一下
    如在 Excel 或批处理中通过定义命令,替换成正确数据才可以正常复制剪切使用
    具体替换参数见 5 楼数据
    keventseng
        14
    keventseng  
       2018-08-13 19:47:00 +08:00
    抓取的时候数字替换一下就行了。
    Sparetire
        15
    Sparetire  
       2018-08-14 02:53:13 +08:00 via Android
    字体反爬了解一下 https://zhuanlan.zhihu.com/p/37838586
    ytf513
        16
    ytf513  
    OP
       2018-08-14 09:26:30 +08:00
    @AJian 这个关系我也看到了,可是关系变化了怎么办?
    M003
        17
    M003  
       2018-08-14 15:20:35 +08:00
    如果对应关系经常换就没什么想法

    刚才人肉修改了下

    文本节点: 0123456789

    显示: 9207138654

    ![]( )

    字体文件也是这样对应的..
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2599 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 02:43 · PVG 10:43 · LAX 18:43 · JFK 21:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.