前几天找本很老的书,纸质书只有图书馆有,电子版要么上淘宝买要么到论坛上灌水刷金币买。好不容易找到一个网站可以在线看,但只能单页保存,GF帮忙点了好久才下了几十页。于是就想试着写个脚本批量下载。
一个高手看起来巨简单的的程序,我在官网上看了N久的库文献加上N多google代码片段,断断续续写了3天才出来,不过总算稍微入点门了⋯⋯
代码如下,看那一堆注释就知道每一步我都要调试几遍才能过去。最后组合单页pdf,去水印本来也想直接完成的,但mac终端下没有现成的程序,准备手动用Acrobat完成了。
因为我没有看几页《A byte of Python》就开始写了,只是想完成需求就好了,所以写得肯定有好多不正规的地方。请大家帮忙指点一下,哪些地方可以改进或是写得更正规一点?
谢谢啦!
#下载西山电子书
import urllib.request
import re
import os
#循环 次数=书页数
for i in range(1, 231):
#get pdf所在网页
fileHandle = urllib.request.urlopen("http://www.bjmem.com/bjm/bjwh/include/showpdf.jsp?bookId=5259&xuhao=" + str(i) + "&pdfuri=/bjm/bjwh/zrdl/200711/")
#打开网页文件搜索SRC一行,读取pdf网址
pagesrc = str(fileHandle.read(), "utf-8")
fileHandle.close()
# print (pagesrc)
posbegin = re.search("PARAM NAME="SRC" VALUE=", pagesrc)
# print (posbegin.end())
#original = re.compile(pagesrc)
#print (original)
posend = re.search(".pdf", pagesrc)
# print (posend.end())
# print (pagesrc[posbegin.end():posend.end()])
pdfaddress = "http://www.bjmem.com/" + pagesrc[posbegin.end():posend.end()]
# print (pdfaddress)
#wget下载pdf,并按页码命名
cmd = "wget -c " + pdfaddress + " -O bjxs" + str(i) + ".pdf"
os.system (cmd)
#print (url)
#用工具组合pdf为一个文件