shanghai1943
V2EX  ›  问与答

感觉现在很多网站都不用 json 传输数据了,是为了反爬么

  •  1
     
  •   shanghai1943 · Mar 24, 2021 · 4038 views
    This topic created in 1966 days ago, the information mentioned may be changed or developed.

    我们自己开发的应用还走的是 json 传输数据,但是我看有些网站查看 network 的时候没看到有请求,感觉像是通过页面来传输数据了,或者是 js 加密传输之类的。这么做的目的是为了安全反爬之类的么。

    25 replies    2021-03-25 11:13:06 +08:00
    pekki
        1
    pekki  
       Mar 24, 2021
    现在不是用 google protobuf 了嘛
    locoz
        2
    locoz  
       Mar 24, 2021 via Android
    你搞清楚 JSON 是啥了吗…
    sadfQED2
        3
    sadfQED2  
       Mar 24, 2021 via Android
    你搞清楚 JSON 是啥了吗…
    shanghai1943
        4
    shanghai1943  
    OP
       Mar 24, 2021
    可能没表述清楚让各位大哥见笑了。我指的是目前我们这边应用的前后端交互走的是 ajax 异步请求,服务端接口数据返回格式是 json 类型,通过一些抓包工具可以查看网站的数据传输。但是目前有些网站似乎不用类似的 ajax 请求方式,至少从 Chrome 的 network 里看不到一些接口返回或者很直观的数据传输,所以猜想他们这么做是出于安全考虑的么。
    blackshow
        5
    blackshow  
       Mar 24, 2021
    还是没看懂
    dzdh
        6
    dzdh  
       Mar 24, 2021
    比如?哪个网站?给个出来。

    确定不是直播类型的网站走的 ws 么
    IGJacklove
        7
    IGJacklove  
       Mar 24, 2021 via Android
    @dzdh 他说的应该是后端生成好页面再返回给浏览器,我记得 react 有个框架就是这样的。
    cherryas
        8
    cherryas  
       Mar 24, 2021   ❤️ 2
    为啥我觉得楼主说的很容易懂,其他人为啥看不懂呢
    GPLer
        9
    GPLer  
       Mar 24, 2021 via Android
    楼上正解,因为服务端渲染(SSR)流行。
    isbase
        10
    isbase  
    PRO
       Mar 24, 2021 via iPhone
    服务端渲染的应用。请求是在服务端发的。前端自然看不到
    a62527776a
        11
    a62527776a  
       Mar 24, 2021
    服务端渲染展示出完整页面的速度比下载页面后再通过 ajax 交互渲染要快
    blessyou
        12
    blessyou  
       Mar 24, 2021
    有时候恰恰是为了爬虫,后端给了完整的 HTML 给到浏览器,后续的页面请求还是走 ajax json 的,你可以看看后续的 network 。
    touchwithe
        13
    touchwithe  
       Mar 24, 2021 via iPhone
    不是前后端分离吗?又开始流行服务端渲染了?复古?
    also24
        14
    also24  
       Mar 24, 2021
    建议直接贴网址
    66beta
        15
    66beta  
       Mar 24, 2021
    @touchwithe 哈哈哈,你晚了半个世纪了,马上又要流行分离了
    CEBBCAT
        16
    CEBBCAT  
       Mar 24, 2021
    @cherryas #7 楼上那些网友的意思是,JSON 只是一种编码方式,不是一种传输方式。但楼主想说的其实是看不到 Ajax 通信了。比如说,后端用 XML 来返回数据
    shyangs
        17
    shyangs  
       Mar 24, 2021
    @CEBBCAT
    Ajax 的 x 就是指 XML
    CEBBCAT
        18
    CEBBCAT  
       Mar 24, 2021 via Android
    @shyangs 然后呢?
    66450146
        19
    66450146  
       Mar 24, 2021
    @touchwithe 现在流行的是前端服务器根据请求的 URL 先渲染一个足够展示的 html 页面,然后再把剩下的应用传下来。其实说白了就是在前后端分离的基础上增加了一个初始状态的优化,代价就是前端服务器需要承担一小部分的数据获取职责
    dzdh
        20
    dzdh  
       Mar 24, 2021
    马萨卡! 马萨卡一带一路 PJAX !
    zjsxwc
        21
    zjsxwc  
       Mar 24, 2021 via Android
    楼主,请给出一个网站的例子
    kerro1990
        22
    kerro1990  
       Mar 24, 2021 via iPhone
    知乎就是服务器渲染的 react
    my3157
        23
    my3157  
       Mar 25, 2021 via Android
    常用的一种反爬虫手段,请求的时候,服务端将数据一定程度的混淆,饭后将数据放入一个 js 脚本中返回,页面拿到数据后,通过页面上已经存在的某个变量(页面加载的时候已经有了)为参数,调用返回脚本中的某个方法,从而还原数据,渲染到页面上

    本质来说不难破解,就是费事,可以阻挡大部分 XX OO 爬虫教程了
    shanghai1943
        24
    shanghai1943  
    OP
       Mar 25, 2021
    @my3157 #23 涨姿势了。感谢指教。
    cherryas
        25
    cherryas  
       Mar 25, 2021
    反正我 selenium 一把梭了。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   4531 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 59ms · UTC 10:06 · PVG 18:06 · LAX 03:06 · JFK 06:06
    ♥ Do have faith in what you're doing.