婆罗门
精华
|
战斗力 鹅
|
回帖 0
注册时间 2018-1-21
|
本帖最后由 Aeroblast 于 2021-8-31 00:37 编辑
之前想过抓自己的空间留个档,结果做了一半不了了之了。我这有个其他思路,你看看行不行。
一边模拟点击,一边抓请求。
比如我看到一个user.qzone.qq.com/proxy/domain/photo.qzone.qq.com/fcgi-bin/cgi_floatview_photo_list_v2后面一串参数,内容是json,里面有个photos列表,一个个什么谁发的 上传时间 图片链接(不知道是不是原图)都有。当然这个api不一定行,可能需要找别的,然后还要查重什么的。
js抓这种请求的话,给XMLHttpRequest.prototype.open和send套一层你的抓取。然后qq空间这堆请求返回不是纯json,外面套个函数,什么什么callback,你可以照着写个函数,eval一下在油猴的作用域就调用你自己的这个函数,直接拿到对象。- function viewer_Callback(data){
- console.log(data.data.photos)
- }
- XMLHttpRequest.prototype.openO=XMLHttpRequest.prototype.open;
- XMLHttpRequest.prototype.open=function(method, url, async, user, password){
- this.openO(method, url, async, user, password);
- this.url=url;
- }
- XMLHttpRequest.prototype.sendO=XMLHttpRequest.prototype.send;
- XMLHttpRequest.prototype.send=function(para){
- this.sendO(para);
- if(this.url.startsWith("https://user.qzone.qq.com/proxy/domain/photo.qzone.qq.com/fcgi-bin/cgi_floatview_photo_list_v2")){
- let onloadO=this.onload;
- this.onload=function(){
- eval(this.responseText);//调用viewer_Callback
- onloadO()
- }
- }
- }
复制代码
然后你加上模拟点击下一张,遇到一次请求是19个,photos是个数组里面啥也有
|
评分
-
查看全部评分
|