爬虫: api 的 url 连接前加上 blob

2018-07-03 22:48:46 +08:00
 rocketman13

最近爬虫一个 app,发现详情页的 url 地址前加上 blob,浏览 url 返回的是空白页,最近想试试爬 b 站的视频,发现 b 站视频的 url 前也加上了 blob,单独请求 url 返回 404,请问大神们这个 blob 是什么东西?如果绕过他?

2772 次点击
所在节点    问与答
12 条回复
rocketman13
2018-07-03 22:49:12 +08:00
如何绕过它拿到想要的数据??
jonechenug
2018-07-03 23:13:34 +08:00
blob 是对象存储,你抓包看看有没有什么特殊处理转换或者头标识的
a7a2
2018-07-03 23:38:43 +08:00
wasm ?
noe132
2018-07-04 00:36:34 +08:00
blob 是 objectUrl。
var array = new ArrayBuffer(1)
var view = new Int8Array(array)
view[0] = 1
var blob = new Blob(view)
var objectUrl = URL.createObjectURL(blob)
// blob:https://www.v2ex.com/10ef14d3-3117-4858-aa07-e9e74deafff0

从 objectUrl 取回相应的 data,最好的方式是在相应的环境里,用 xhr 请求 objectUrl,返回 arrayBuffer 或者 blob 就行了
viosey
2018-07-04 05:37:52 +08:00
知乎的视频好像也是用的 blob
rocketman13
2018-07-04 09:06:13 +08:00
@jonechenug 如何找到我想要的真实视频地址呢?
rocketman13
2018-07-04 09:06:39 +08:00
@a7a2 不懂不懂,希望讲明白点
rocketman13
2018-07-04 09:07:24 +08:00
@noe132 这也是一种 js 里实现的加密功能吗?需要 js 反推吗?
rocketman13
2018-07-04 09:08:22 +08:00
@viosey 老哥,有解决方法吗?
lookas2001
2018-07-04 10:53:33 +08:00
@rocketman13 查 mdn 吧少年。
没啥好办法,如楼上所说,观察一下网络请求或者分析一下 js 吧
hahasong
2018-07-04 11:48:13 +08:00
估计要分析 js 代码,拿到原始对象。这种 ObjectURL 只在当时的上下文环境才有效,不想分析的话只能上 headless 爬
rocketman13
2018-07-05 13:37:19 +08:00
@hahasong 可是这就是在静态页面获取到的 url 啊,headless 也只能获取 blob 这个连接

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

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

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

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

© 2021 V2EX