python对于已知文件名进行pdf批量下载

来源:互联网 发布:期货程序化交易软件 编辑:程序博客网 时间:2024/05/02 02:22

因为某些原因要收集一系列pdf,于是就想用搜索引擎自动搜索文件名,然后根据返回页面pdf文件的检查,如果有相应的pdf,那么就下载第一个pdf链接,并在同时用readme文件来记录相应的下载情况,因为只是临时用用,本着性价比的原则程序写得不是很完善。

import osimport urllibimport re        def cbk(a,b,c):    per = 100.0 * a * b / c      if per > 100:          per = 100            print '%.2f%%' % perdef setdir(dirname):    path="D:/down/newpdf/"+dirname    if not os.path.exists(path):        os.makedirs(path)    os.chdir(path)    os.getcwd() def downpdf(url,file):    print url    filename,msg=urllib.urlretrieve(url,file,cbk)    def search(line):    url='http://cn.bing.com/search?q='+line    conn=urllib.urlopen(url)    nn=conn.read()    if len(nn)==292:        return False    else:        reg='<cite>(.*?)</cite>'        articles=re.compile(reg).findall(nn)        if len(articles)==0:                        return False        else:             for url in articles:                if url[-4:]=='.pdf':                    global sv                    sv.write(',full')                    link=''                    link=link.join(url.split('<strong>'))                    alink=''                    alink=alink.join(link.split('</strong>'))                    print alink                    if alink[0:4]!='http':                        alink='http://'+alink                        print alink                    downpdf(alink,line+'.pdf')                    return True        global sv        sv.write(',none')        return Falsedef notExistFile(line):    if os.path.exists(line+'.pdf'):        global sv        sv.write(',exist')        return False    else:        return Truepath="D:/down/newpdf/"os.chdir(path)sv=open('readme.csv','wb')articleList=open(path+'vis2000.txt')for line in articleList:    if line !='\n':        if line[0]=='~':            print 'setdir'            setdir(line[1:-1])            sv.close()              sv=open(line[1:-1]+' readme.csv','wb')            continue        else:            print line            line=line[:-1]            sv.write(line)            print "search "+line[:-1]            if notExistFile(line):                search(line)            else :                print 'exist'            sv.write('\n')            sv.close()  


0 0
原创粉丝点击