大表哥微信给我发了很多资源!结果被和谐了!Python秒存不被和谐
最近大表哥老是给我发一些云盘链接,里面经常也有发视频的云盘链接,小编对此挺好奇的,所以决定点进去看看,看看每天发的这样的云盘链接里面都是什么样的视频,当然小编是有私心的。以为你们是某些方面的动作片嘛!所以就点进去看了一下,没想到大部分的云盘链接的视频都被和谐了,这就感觉在吃苹果,结果一口咬下去,然后那个苹果外面还留有半条虫一样。
先上图!
怕头条爸爸不给过,所以我决定都打码处理!
进群:125240963 即可获取数十套PDF哦!01也可以呢
这是个不错的工具,可以实现网页版微信的所有功能,之前博主利用它还实现了机器人聊天功能,自己的个人账号华丽转变 微软小冰 。虽然微软还没有公开小冰的 api ,不过我们完全可以利用这个工具的转发功能来实现,思路很简单,微信上领养一个小冰,把别人说的话转发给小冰,再把小冰说的话转发回去。
可以看到上图中抓到了一个带有 “transfer” 单词的 post 请求,这就是我们要找的转存(transfer)api 。接下来很关键,就是分析它的请求头和请求参数,以便用代码模拟。
cookie分析:
因为转存是登录后的操作,所以需要模拟登录状态,将与登录有关的 cookie 设置在请求头里。我们继续使用【控制变量法】,先将浏览器里关于百度的 cookie 全部删除(在右上角的设置里面,点击【隐私】,移除cookies。具体做法自己百度吧。)
除了上面说到的两个 cookie ,其他的请求头参数可以参照手动转存时抓包的请求头。这两个 cookie 预留出来做参数的原因是 cookie 都是有生存周期的,过期了需要更新,不同的账号登录也有不同的 cookie 。
上面的query string(也就是?后跟的参数)里,除了框起来的shareid、from、bdstoken需要我们填写以外,其他的都可以不变,模拟请求的时候直接抄下来。
前两个与分享的资源有关,bdstoken与登录的账号有关。下面的form data里的两个参数分别是资源在分享用户的网盘的所在目录和刚刚我们点击保存指定的目录。
所以,需要我们另外填写的参数为:shareid、from、bdstoken、filelist 和 path,bdstoken 可以手动转存抓包找到,path 根据你的需要自己定义,前提是你的网盘里有这个路径。其他三个需要从分享链接里爬取,这个将在后面的【爬取shareid、from、filelist,发送请求转存到网盘】部分中进行讲解。
搞清楚了参数的问题,可以像下面这样构造转存请求的 url 。
爬取shareid、from、filelist,发送请求转存到网盘
https://pan.baidu.com/s/1jImSOXg
以上面这个资源链接为例(随时可能被河蟹,但是没关系,其他链接的结构也是一样的),我们先用浏览器手动访问,F12 打开控制台先分析一下源码,看看我们要的资源信息在什么地方。控制台有搜索功能,直接搜 “shareid”。
定位到4个shareid,前三个与该资源无关,是其他分享资源,最后一个定位到该 html 文件的最后一个<script></script>标签块里。双击后可以看到格式化后的 js 代码,可以发现我们要的信息全都在里边。如下节选:
可以看到这两行
yunData.SHARE_ID = "3927175953";
yunData.SHARE_UK = "140959320"; // 经过对比,这就是我们要的 "from"
yunData.PATH 只指向了一个路径信息,完整的 filelist 可以从 yunData.FILEINFO 里提取,它是一个 json ,list 里的信息是Unicode编码的,所以在控制台看不到中文,用Python代码访问并获取输出一下就可以了。
清楚了这三个参数的位置,我们就可以用正则表达式进行提取了。代码如下:
爬取到了这三个参数,就可以调用之前的 transfer 方法进行转存了。
完整代码
get到了吧?是不是既方便又实用哈~!
上一篇: Python 线程同步锁, 信号量
下一篇: 转译符,re模块,random模块