python下载百度文库文档

“”“

26/05/14修改。。去掉不必要的东西。。

”“”

主要就这句 http://wenku.baidu.com/play/文档ID?pn=页数

也不知道别人是怎么找出来的。。反正我抓了半天的包就是没发现这句。。。尴尬

(因为要处理一些东西,,所以没加进度条。。。=。=有必要的可以自己加下。。。)

运行后会在当前目录下生成wenKuDownload和它的子目录img, swf。。。swf储存下载下来的文件, img储存转换后的图片文件。。(能力不够,,没写这个。。有需要可以找下swf2pdf将那些swf文件合成一个pdf文件。。。。)


要运行这些代码你需要Python3。。。。Python2.x应该会出错。。


主文件。。。

#coding=utf-8
import re;
import urllib;
import urllib.request;

header = {
    "User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.107 UBrowser/1.0.370.1388 Safari/537.36", 
}

URL_GETBDWKDOC = "http://wenku.baidu.com/play/{0}?pn={1}";
URL_BDWK = "http://wenku.baidu.com/view/{0}.html";

class BdWkDownloader:
    def __init__(self):
        pass;
        
    def getTotalPages(self, id):
        return int(re.compile(r"totalPageNum'\s*:\s*'(\d+)'").findall(urllib.request.urlopen(URL_BDWK.format(id)).read().decode("gb2312"))[0]);
        
    def download(self, id, dir = "./"):
        num = self.getTotalPages(id);
        for i in range(0, num):
            request = urllib.request.Request(URL_GETBDWKDOC.format(id, i + 1), headers = header);
            data = urllib.request.urlopen(request).read();
            file = open("{0}{1}.{2}".format(dir, i, "swf"), "wb");
            file.write(data[106:]);
            file.close();
        
def main():
    downloader = BdWkDownloader();
    downloader.download("ef13d84ea6c30c2259019e5b");
    
if(__name__ == "__main__"):
    main();


  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值