“”“
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();