魔幻冰扬 发表于 2022-4-8 19:15

爬数据找不到数据源(没找到http和ws请求)

爬一个网站的数据,数据是动态更新的,但是通过network没发现有接口请求。

http 和 ws都没找到,那他是咋请求的?

网址: https://live.leisu.com/3in1-3655194

jiujiukeji 发表于 2022-4-8 19:45

有可能直接渲染的页面也有可能在JS中 你去找找

魔幻冰扬 发表于 2022-4-8 19:55

jiujiukeji 发表于 2022-4-8 19:45
有可能直接渲染的页面也有可能在JS中 你去找找

大概是在js中。现在疑惑的是不通过http。只通过js,如何向后端获取数据呢?

RootChmod 发表于 2022-4-8 21:00

数据在js里面,html里这样实现的   <div class="num" v-text-ca="{data:odd.asia.f||\'-\',class:\'init_odd\'}"></div>
使用了自定义的vue指令

魔幻冰扬 发表于 2022-4-8 21:09

RootChmod 发表于 2022-4-8 21:00
数据在js里面,html里这样实现的   
使用了自定义的vue指令

疑惑的是,源数据不通过http请求?直接放js中,通过js获取数据?

RootChmod 发表于 2022-4-8 21:29

你在页面里执行这一些js即可在页面上拿到数据,有需要其他的可以追问我

(function(n) {
    new Vue({
      el: n,
      mixins: ,
      data: ()=>({
            show_init: !0
      }),
      created() {
            this]()
      },
      methods: {
            init() {
                const s = {}
                  , i = , n, n];
                for (const d of i) {
                  this](this])](i=>{
                        s]] || (s]] = {});
                        const a = i]
                        , c = i]]
                        , t = i]];
                        s]] = {
                            f: a,
                            r: c,
                            updown: t
                        }
                  }
                  )
                }
                const d = [];
                for (const of Object](s)) {
                  for (const s of i)
                        c || (c = {
                            f: , n, n],
                            r: , n, n],
                            updown:
                        });
                  const s = Object]({}, c);
                  s] = this](a)],
                  s] = a,
                  this](s, n, !1),
                  d](s)
                }
                this] = d,
                this] = this],
                this](this])
            }
      },
      template: '\n    <div class="main-content-vue">\n    \x3c!-- 隐藏保留显示全部共间公司是否显示初指 --\x3e\n    <div class="control">\n      <div class="control-btns">\n            <div class="btn-white select-oddtype">\n                <div class="companys">\n                  <div class="select-box">\n                        <div class="current">\n                            <div class="selected">{{get_type(odd_type).name}}\n                              <span class="arrow iconfont icon-arrow"></span>\n                            </div>\n                            \n                        </div>\n                        <div class="down">\n                            <div class="option" @click="select_odd_type(type.id)" :class="{active:type.id==odd_type}" v-for="type in odd_types" v-text="type.name"></div>\n                        </div>\n                  </div>\n                </div>\n            </div>\n            <div class="btn-white" :class="{active:cur_btn==\'hide\'}" @click="hide_btn">隐藏</div>\n            <div class="btn-white" :class="{active:cur_btn==\'save\'}" @click="save_btn">保留</div>\n            <div id="btn-all" class="btn-white" :class="{active:cur_btn==\'show_all\'}" @click="show_all_btn">显示全部</div>\n      </div>\n      <div class="count-text">共[<span id="count" class="show-count">{{list}}</span>/<span>{{source.length}}</span>]间公司</div>\n      <div class="is-show-initial">\n            <label class="check-label" :class="{active:show_init}" @click="show_init=!show_init">\n                <i class="iconfontactive" :class="show_init?\'icon-iconchoicec\':\'icon-iconchoicen\'"></i>是否显示初指\n            </label>\n      </div>\n      <div class="space"></div>\n      <div class="legend">\n            <div>\n                <div class="up"></div>\n                <div>上升</div>\n            </div>\n            <div>\n                <div class="down"></div>\n                <div>下降</div>\n            </div>\n      </div>\n    </div>\n\n    <div class="table-wrapper":class="{fide:fide}">\n      <div class="odds">\n            <table>\n                <thead>\n                  <tr>\n                        <th class="w50" style="border-radius: 5px 0 0 0;background-color: #e2e2e5;">\n                            <div style="box-sizing:border-box;" @click="select_all_checkbox()"><i class="iconfont" :class="select_all_class"></i></div>\n                        </th>\n                        <th class="w150">\n                            <div class="companys">\n                              <div class="select-box" style="top: calc(50% - 10px);">\n                                    <div class="current">\n                                        <div class="selected">{{get_comp(cur_select_id).name}}\n                                          <span class="arrow iconfont icon-drop"></span>\n                                        </div>\n                                        \n                                    </div>\n                                    <div class="down">\n                                        <div class="option" @click="select_comp(comp.id)" :class="{active:comp.id==cur_select_id}" v-for="comp in comp_select" v-text="comp.name">全部公司</div>\n                                    </div>\n                              </div>\n                            </div>\n                        </th>\n                        <th class="w300">\n                            <div class=" average-h">\n                              <div class="average">\n                                    <div>胜负</div>\n                              </div>\n                              <div class="average tb-head">\n                                    <div class="title">主胜</div>\n                                    <div class="title">走势</div>\n                                    <div class="title">客胜</div>\n                              </div>\n                               \n                            </div>\n                        </th>\n                        <th class="w300">\n                            <div class=" average-h">\n                              <div class="average">\n                                    <div>让球</div>\n                              </div>\n                              <div class="average tb-head">\n                                    <div class="title">主胜</div>\n                                    <div class="title">走势</div>\n                                    <div class="title">客胜</div>\n                              </div>\n                               \n                            </div>\n                        </th>\n                        <th class="w300">\n                            <div class="average-h">\n                              <div class="average">\n                                    <div>进球数</div>\n                              </div>\n                              <div class="average tb-head">\n                                    <div class="title">大球</div>\n                                    <div class="title">走势</div>\n                                    <div class="title">小球</div>\n                              </div>\n                               \n                            </div>\n                        </th>\n            \n                        <th class="w50">查看</th>\n                  </tr>\n                </thead>\n                <tbody>\n                  <template v-for="(odd,indd) in list">\n                        <tr :class="show_init?\'has-initial\':\'\'":key="\'com\'+odd.cid">\n                            <td> \n                              <label @click="change_selects(odd)"><i class="iconfont ":class="odd.select?\'icon-iconchoicec\':\'icon-iconchoicen\'"></i></label>\n                            </td>\n                            <td>\n                              <canvas class="comp_name" width="149"height="32" :indd="indd"></canvas>\n                            </td>\n                            <td>\n                            \n                              <div class="eu-wrapper average-h">\n                                    <div class="average initial">\n                                        <div class="home">\n                                          <div class="num" v-text-ca="{data:odd.eu.f||\'-\',class:\'init_odd\'}"></div>\n                                        </div>\n                                        <div class="draw">\n                                          <div class="num" v-text-ca="{data:odd.eu.f||\'-\',class:\'init_odd\'}"></div>\n                                        </div>\n                                        <div class="away">\n                                          <div class="num" v-text-ca="{data:odd.eu.f||\'-\',class:\'init_odd\'}"></div>\n                                        </div>\n                                    </div>\n                                    <div class="average">\n                                          <div class="home" :class="get_cur_class(odd.eu.updown)">\n                                                <div class="num">\n                                                    <div v-text-ca="{data:odd.eu.r||\'-\',class:get_cur_class(odd.eu.updown)}"></div>\n                                                    <i class="iconfont icon-down"></i>\n                                                    <i class="iconfont icon-top"></i>\n                                                </div>\n                                          </div>\n                                          <div class="draw" :class="get_cur_class(odd.eu.updown)">\n                                                <div class="num">\n                                                    <div v-text-ca="{data:odd.eu.r||\'-\',class:get_cur_class(odd.eu.updown)}"></div>\n                                                    <i class="iconfont icon-down"></i>\n                                                    <i class="iconfont icon-top"></i>\n                                                </div>\n                                          </div>\n                                          <div class="away" :class="get_cur_class(odd.eu.updown)">\n                                                <div class="num">\n                                                    <div v-text-ca="{data:odd.eu.r||\'-\',class:get_cur_class(odd.eu.updown)}"></div>\n                                                    <i class="iconfont icon-down"></i>\n                                                    <i class="iconfont icon-top"></i>\n                                                </div>\n                                          </div>\n                                    </div>\n                              \n\n                              </div>\n                            </td>\n                            <td>\n                              <div class="eu-wrapper average-h">\n                                    <div class="average initial">\n                                        <div class="home">\n                                          <div class="num" v-text-ca="{data:odd.asia.f||\'-\',class:\'init_odd\'}"></div>\n                                        </div>\n                                        <div class="draw">\n                                          <div class="num" v-text-ca="{data:odd.asia.f||\'-\',class:\'init_odd\'}"></div>\n                                        </div>\n                                        <div class="away">\n                                          <div class="num" v-text-ca="{data:odd.asia.f||\'-\',class:\'init_odd\'}"></div>\n                                        </div>\n                                    </div>\n                                    <div class="average">\n                                        <div class="home":class="get_cur_class(odd.asia.updown)">\n                                          <div class="num">\n                                                <div v-text-ca="{data:odd.asia.r||\'-\',class:get_cur_class(odd.asia.updown)}"></div>\n                                                <i class="iconfont icon-down"></i>\n                                                <i class="iconfont icon-top"></i>\n                                          </div>\n                                        </div>\n                                        <div class="draw" :class="odd.asia.updown>0?\'bg-top\':odd.asia.updown<0?\'bg-down\':\'\'">\n                                          <div class="num">\n                                                <div v-text-ca="{data:odd.asia.r||\'-\',class:get_cur_class(odd.asia.updown)}"></div>\n                                                <i class="iconfont icon-down"></i>\n                                                <i class="iconfont icon-top"></i>\n                                          </div>\n                                        </div>\n                                        <div class="away" :class="get_cur_class(odd.asia.updown)">\n                                          <div class="num">\n                                                <div v-text-ca="{data:odd.asia.r||\'-\',class:get_cur_class(odd.asia.updown)}"></div>\n                                                <i class="iconfont icon-down"></i>\n                                                <i class="iconfont icon-top"></i>\n                                          </div>\n                                        </div>\n                                    </div>\n                              \n\n                              </div>\n                            </td>\n                            <td>\n                              <div class="eu-wrapper average-h">\n                                    <div class="average initial">\n                                        <div class="home">\n                                          <div class="num" v-text-ca="{data:odd.bs.f||\'-\',class:\'init_odd\'}"></div>\n                                        </div>\n                                        <div class="draw">\n                                          <div class="num" v-text-ca="{data:odd.bs.f||\'-\',class:\'init_odd\'}"></div>\n                                        </div>\n                                        <div class="away">\n                                          <div class="num" v-text-ca="{data:odd.bs.f||\'-\',class:\'init_odd\'}"></div>\n                                        </div>\n                                    </div>\n                                    <div class="average">\n                                        <div class="home" :class="get_cur_class(odd.bs.updown)">\n                                          <div class="num">\n                                                <div v-text-ca="{data:odd.bs.r||\'-\',class:get_cur_class(odd.bs.updown)}"></div>\n                                                <i class="iconfont icon-down"></i>\n                                                <i class="iconfont icon-top"></i>\n                                          </div>\n                                        </div>\n                                        <div class="draw" :class="odd.bs.updown>0?\'bg-top\':odd.bs.updown<0?\'bg-down\':\'\'">\n                                          <div class="num">\n                                                <div v-text-ca="{data:odd.bs.r||\'-\',class:get_cur_class(odd.bs.updown)}"></div>\n                                                <i class="iconfont icon-down"></i>\n                                                <i class="iconfont icon-top"></i>\n                                          </div>\n                                        </div>\n                                        <div class="away" :class="get_cur_class(odd.bs.updown)">\n                                          <div class="num">\n                                                <div v-text-ca="{data:odd.bs.r||\'-\',class:get_cur_class(odd.bs.updown)}"></div>\n                                                <i class="iconfont icon-down"></i>\n                                                <i class="iconfont icon-top"></i>\n                                          </div>\n                                        </div>\n                                    </div>\n\n                              </div>\n                            </td>\n                            <td ><a class="iconfont icon-fbtotallook-link" rel="nofollow" \n                            :href="STATIC_CONFIG.GUIDE+\'/trend-\'+cur_match_id+\'-\'+odd.cid" target="_blank"></a></td>\n\n                        </tr>\n                  </template>\n                   </tbody>\n            </table>\n      </div>\n      <div class="empty" v-if="!source.length">暂无数据</div>\n    </div>\n</div>\n    '
    })
}
).call(this, [".main-content-vue", "init", "eu", "asia", "bs", "clone", "ftb_odds", "forEach", "cid", "f", "odd_type", "entries", "", "assign", "comp_name", "name", "get_comp", "$set", "select", "push", "source", "list", "get_comp_select"]);

RootChmod 发表于 2022-4-8 21:34

魔幻冰扬 发表于 2022-4-8 21:09
疑惑的是,源数据不通过http请求?直接放js中,通过js获取数据?

源数据在php里做了加密,通过js解密变量,获得数据

a147888123 发表于 2022-4-8 21:35

3in1-a6972a9ce9.js 这个JS来生成得,你慢慢调试

RootChmod 发表于 2022-4-8 21:36

魔幻冰扬 发表于 2022-4-8 21:09
疑惑的是,源数据不通过http请求?直接放js中,通过js获取数据?

就比如
返回了一个html
<html>
<div id="show"></div>
<script>
var a = "aabbcc"
if(a=="aabbcc"){
show = "数据1"
}
</script>

</html>

实际数据就是那个aabbcc

a147888123 发表于 2022-4-8 21:38

太难了。。。放弃
页: [1] 2
查看完整版本: 爬数据找不到数据源(没找到http和ws请求)