爬数据找不到数据源(没找到http和ws请求)
爬一个网站的数据,数据是动态更新的,但是通过network没发现有接口请求。http 和 ws都没找到,那他是咋请求的?
网址: https://live.leisu.com/3in1-3655194 有可能直接渲染的页面也有可能在JS中 你去找找 jiujiukeji 发表于 2022-4-8 19:45
有可能直接渲染的页面也有可能在JS中 你去找找
大概是在js中。现在疑惑的是不通过http。只通过js,如何向后端获取数据呢? 数据在js里面,html里这样实现的 <div class="num" v-text-ca="{data:odd.asia.f||\'-\',class:\'init_odd\'}"></div>
使用了自定义的vue指令 RootChmod 发表于 2022-4-8 21:00
数据在js里面,html里这样实现的
使用了自定义的vue指令
疑惑的是,源数据不通过http请求?直接放js中,通过js获取数据? 你在页面里执行这一些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"]);
魔幻冰扬 发表于 2022-4-8 21:09
疑惑的是,源数据不通过http请求?直接放js中,通过js获取数据?
源数据在php里做了加密,通过js解密变量,获得数据 3in1-a6972a9ce9.js 这个JS来生成得,你慢慢调试 魔幻冰扬 发表于 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 太难了。。。放弃
页:
[1]
2