您的位置:首页 > 编程语言 > Python开发

百度云批量离线python程序

2015-10-05 18:42 423 查看
有时下载一些资源时很慢,无意中发现百度云可以离线下载,利用这一功能可以将文件存到云盘里,这样再下载就快了,

有时要离线的资源多,一个个来太费手,就想能不能批量离线,可惜人家并没有提供这个功能.

曾看到一个在浏览器控制台运行的js代码,实现了该功能.可是,操作过快就弹出验证码,最多成功一两个.

昨天经过抓包,发现确认离线时,浏览器发出了一个post请求,然后文件就进入了离线列表,

突然就想,如果人为模拟这个post请求,会不会成功了,于是就用强大的python试了下,果然,成功了,

可是,百度限制了离线任务数量,只允许同时离线5个.毕竟是免费的,没办法.

代码如下:

#coding=utf-8
import time
import requests

##########配置#############
#token 看下面说明
bdstoken=""

#资源地址列表
f_list=["url1","url2"]
#保存路径(相对路径,不懂的问度娘)
save_path="/我的资源/"
#cookie
cookie=""

#########################

heads={
"Host":"pan.baidu.com",
"Origin":"http://pan.baidu.com",
"Referer":"http://pan.baidu.com/disk/home",
"User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.85 Safari/537.36",
"Cookie": cookie

}

pdata={"method":"add_task","app_id":"250528","source_url":"","save_path":save_path}

#定义post的地址
url='http://pan.baidu.com/rest/2.0/services/cloud_dl?bdstoken='+bdstoken+'&bdstoken='+bdstoken+'&channel=chunlei&clienttype=0&web=1&app_id=250528'

for furl in f_list:
pdata['source_url']=furl
a=requests.post(url,data=pdata,headers=heads).content
print a
time.sleep(1) #休眠一秒
print "ok!"




运行截图(只添加了一个文件)



输出的是请求返回内容

说明:运行前最好先进下离线任务,打开开发工具复制cookie,如果没有看到tekon,先添加一个离线任务,

我不擅长写博客,写的不好,请各位谅解,希望大神能指教

如果有不明白的地方,请回复.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: