请问这种网页是不是 js 加密的?应该如何获取数据?

2021-02-15 12:38:29 +08:00
 maloneleo88
http://zq.win007.com/analysis/1964531cn.htm

学了几天 python,实战败了,这种动态的 requests 不到,各种错误。

最后试了 selenium,可以拿到数据,也可以分析,但是太慢了,花费时间和人力没区别。

作为一枚小白,怎样才能拿到这种实施响应的数据?我觉得这个不是 ajax 请求到的 json 吧?也不是普通的 js 脚本。

这里是不是还有加密信息?我想得到对赛往绩的数据,应该从哪个地方入手?
这种页面数据,按网上的方法,搜索不到相关的 js 文件,望大佬不吝赐教。!!!
4749 次点击
所在节点    Python
39 条回复
maloneleo88
2021-02-15 12:43:38 +08:00
想得到心理上的满足与快感吗?
想展现男人的雄风吗?
想站在众山之巅俯视苍生吗?

那就快来回答我的问题吧! :)
matrix67
2021-02-15 12:50:44 +08:00
var sOdds=[['未开场',0,0,0.65,0,1.20,1.11,0.25,0.72,0.89,0.25,0.93,0.94,0.5,0.88,0.70,0.75,1.11,1.06,1,0.74,0.97,2.25,0.83,0.81,2.25,0.99,2.82,1.99,3.80,2.53,2.08,4.10,2.14,3.15,3.00,1.94,3.25,3.35,0,0,0,0,0,0,0],['45',0,0,1.17,0.25,0.71,0.47,0,1.63,0.98,0.5,0.88,0.96,0.25,0.90,1.08,1,0.76,5.26,0.5,0.03,0.81,2.25,0.99,1.12,1.25,0.73,2.66,2.03,3.95,14.00,1.01,17.00,2.00,3.15,3.30,2.35,2.25,4.00,1,0,0,0,0,0,0],['中场',0,0,,,,,,,0.96,0.25,0.90,1.00,0.25,0.86,,,,,,,1.12,1.25,0.73,0.86,1,0.98,,,,,,,2.35,2.25,4.00,2.42,2.13,4.20,2,0,0,0,0,0,0],['85',0,0,,,,,,,1.00,0.25,0.86,0.43,0,1.75,,,,,,,0.86,1,0.98,3.70,0.5,0.11,,,,,,,2.42,2.13,4.20,7.90,1.09,13.00,3,0,0,0,0,0,0]];maketable();
maloneleo88
2021-02-15 13:00:42 +08:00
@matrix67 这个是 Odds,Odds 是赔率,不是我要的信息。我想要对赛往纪,或者近期战绩里面的信息。 劳烦再看一下,这是 js 加密的吗?
gongym
2021-02-15 13:47:54 +08:00
数据都在页面里呢,下载下来 html,搜索 v_data,Vs_hOdds 就剋看到了
maloneleo88
2021-02-15 14:45:46 +08:00
@gongym 我的好哥哥,先不管数据在不在页面里。我现在是连 requests 页面都不可以啊。 只能总 selenium,毫无意义呀,慢的要死
darer
2021-02-15 14:52:55 +08:00
UA cookie refer 一般也就判定这几个吧
input2output
2021-02-15 14:57:26 +08:00
加一下
User-Agent
Accept
darer
2021-02-15 14:58:20 +08:00
https://sm.ms/image/PRSijLcgFdl95Nq
试了个 UA 就爬到了
v2sir
2021-02-15 14:58:34 +08:00
作为小白, 应该好好学习。如果连这么简单的页面都提取不了。应该回过头去重新学, 或者学会放弃。
maloneleo88
2021-02-15 15:01:20 +08:00
@darer
XHR 里面有两个包
http://zq.win007.com/analysis/odds/1964531.htm?1613372332000
http://zq.win007.com/xml/position/footballanaly.txt?r=0071613372333000

第一个好像不是,只是赔率信息,第二个什么也看不到。
maloneleo88
2021-02-15 15:05:25 +08:00
@input2output 谢谢,马上去试,真的不懂

@v2sir 不耻下问,自学好难,而且没几天,是想好好学,可没有正八经的教程,视频教程看看就缺东西了,正经书里也不讲这些。前面一直学 python 基础语法了,然后发现,爬虫跟那个关系根本不大。真是醉了。


@darer 谢谢哈,我还没太懂,这就去试试,万分感谢!
maloneleo88
2021-02-15 15:25:56 +08:00
@darer

import requests
r = requests.get
UA = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36 Edg/88.0.705.68'
res = r('http://zq.win007.com/analysis/1964531cn.htm',headers={"User-Agent":UA})
res.encoding = 'utf-8'
print(res.text)

我抓下来了,对赛往绩和近期战绩都是空的。直接拿,拿不到的
maloneleo88
2021-02-15 15:30:10 +08:00
@v2sir 看了你以往评论,一句有用的都没有,是不是现实生活不如意,蹲在网线上泄愤?继续吧~ two be number 1
sairoa
2021-02-15 15:42:43 +08:00
把数据刷新的请求复制成 curl 格式,然后用 https://curl.trillworks.com/转成 python 的代码,最后就按照自己需求改请求数据喽。看了一下这网站,不让右键,不过数据还是能抓下来的。
v2sir
2021-02-15 15:46:44 +08:00
@maloneleo88 笑了,是谁没得到答案开始泄愤的? 我叫你回头看看补充基本知识就成泄愤了? 你是婴儿还是残疾?一点小问题就像别人欠你似的? 你以为你谁啊? 我非要告诉你答案?
tan9p
2021-02-15 15:48:40 +08:00
哈哈,仿佛看到了多年前的自己,祝好运
gongym
2021-02-15 15:49:24 +08:00
@maloneleo88 下载下来 html,搜索 v_data,Vs_hOdds 就看到数据了,具体逻辑是在 func.js 里面的 init 和 init_vs 方法,如果 div 的 id 是 v,就获取 v_data 赋值给 data,渲染 table (除了数据)。然后在 init_vs 方法中执行 showOdds_h 方法和 showOdds_s 方法,加载数据。看了下方法就是获取 Vs_hOdds 和 Vs_eOdds 加载数据。你要的数据。直接从 html 中搜就有了。就在 script 标签中。是加载页面的时候就有的。但是如果不执行 js 方法这个数据是不会渲染到页面上的。
maloneleo88
2021-02-15 16:02:15 +08:00
@gongym
@tan9p
@sairoa
@darer

谢谢大家里,数据是不直接显示的,刚刚我找到了。
v_data 是对赛 h_data 是主队近期战绩 等等等 , 接下来只要解析了。谢谢大家! 万分感谢!!!

万万分感谢。还是马虎了。粗心真不适合研究这东西,还是比较适合搬砖。



@v2sir 开始没生气啊,看你回复就上火了,每帖带着一股酸味,你自己看看吧,懒得搭理你。
musi
2021-02-15 16:04:38 +08:00
首先,requests 是用来发请求的,所以不知道你说的“动态”是个啥意思。
其次,selenium 可以拿到,这里要分析两个方面,是请求的不对还是解析数据不对
再者,看评论,你现在已经请求成功了,但还是没拿到数据,这就是数据解析的问题了,看了一下是写在 js 里,可以尝试用正则或者其他方法提取出来转成 json
最后,有时候实战不是你学了这单个方面的知识就可以爬的,就拿爬虫来讲,有些网站做了反扒就不是你单学个基础 python 就能爬得出来的,刚学习还是找个简单点的,增强自己的信心
maloneleo88
2021-02-15 16:06:02 +08:00
@gongym 大哥解释的很透彻,看代码头疼直接保存成 html 了,一看啥也没有,就想是不是又用 js 之类的。后来挨个看代码找到了。感觉看到曙光了,祝各位热心肠新年快乐!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/753378

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX