欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

用python下載百度文庫的代碼

 更新時間:2012年08月06日 15:02:54   作者:  
一個用python下載百度文庫的代碼,需要的同志請修改,下面有提示
先去下載一個叫SWFToImage.dll的東西
再建立一個bat文件,并運行:
復(fù)制代碼 代碼如下:

COPY SWFToImage.dll %windir%\system32
regsvr32 %windir%\system32\SWFToImage.dll

復(fù)制代碼 代碼如下:

#用python下載百度文庫的代碼,需要的同志請修改,下面有提示
#http://www.cnblogs.com/dearplain/
#code by plain
import urllib2
import win32com.client
import os
import sys

if __name__=='__main__':
#os.system('');
os.chdir('D:\my project\pywenku')#保存到哪個文件夾
SWFToImage=win32com.client.Dispatch("{479A1AAC-C148-40BB-9868-A9773DA66AF9}");
'''
allfile=os.listdir(".")
findrecord=0
for file in allfile:
if file==".record":
record=open(file,'rw')
findrecord=1
break
if findrecord==0:
record=open('.record','w')
'''
#url="http://wenku.baidu.com/view/8d3ed840be1e650e52ea9938.html?from=rec&pos=1&weight=2&lastweight=2&count=5"
#url="http://wenku.baidu.com/view/f2fe7a3987c24028915fc37a.html?from=related&hasrec=1"
#url就是你要下載的文檔的地址
url=sys.argv[1]
if url.find("http://")!=0:
print "error! the url is not correct"
sys.exit()
print "downloading %s"%url
try:
urlReferer=url[url.index('http'):url.index('/v')]
print urlReferer
#urlbody=url[url.index('/v')-1:]
urlnum=url[url.index('ew/')+3:url.index('.htm')]
except ValueError:
print "parse url error"
sys.exit()
#print urlnum
wenku='wenku.baidu.com'
reurl='/play/'
pagefrom='?pn='
downnum='&rn='
#try to get title and make dir
req=urllib2.Request(url)
res=urllib2.urlopen(req)
data=res.read()
try:
sfrom=data.index('<title>')+len('<title>')
#print sfrom
sbefore=sfrom+data[sfrom:].index('</title>')
#print sbefore
title=data[sfrom:sbefore]
title=title[:title.rindex('_')]
print 'downloading '+title
except ValueError:
print "get title error"
sys.exit()
allfile=os.listdir(".")
if (title in allfile)==False:
os.mkdir(title)
os.chdir('./'+title)
#get the first swf
req=urllib2.Request('http://wenku.baidu.com'+reurl+urlnum+pagefrom+'1'+downnum+'1')
req.add_header("Referer", urlReferer )
res=urllib2.urlopen(req)
data=res.read()
res.close()
head=data[0:45]
pagenum=0
sfrom=head.index('\":\"')+len('\":\"')
sbefore=sfrom+head[sfrom:].index('\"')
pagenum=int(head[sfrom:sbefore])
print 'pagenum:'+str(pagenum)
if pagenum<=0 or pagenum>2000:
print "error!!!pagenum<0 or pagenum>2000"
sys.exit()
data=data[106:]

swf=open("1.pywenku",'wb')
swf.write(data)
swf.close()
i=1
SWFToImage.InputSWFFileName="%d.pywenku"%i
SWFToImage.ImageOutputType = 1
SWFToImage.ImageWidth=1048
SWFToImage.ImageHeight=1478
SWFToImage.Execute_Begin()
SWFToImage.FrameIndex = 1
SWFToImage.Execute_GetImage()
SWFToImage.SaveToFile("%d.jpg"%i)
SWFToImage.Execute_End()
os.rename("%d.pywenku"%i,"%d.swf"%i)
allfile=os.listdir(".")
#從第二頁下到最后一頁
for i in range(2,pagenum+1):

if '%d.swf'%i in allfile:
continue
#not find in the dir mean
req=urllib2.Request('http://wenku.baidu.com'+reurl+urlnum+pagefrom+str(i)+downnum+'1')
res=urllib2.urlopen(req)
data=res.read()
data=data[106:]
swf=open("%d.pywenku"%i,'wb')
swf.write(data)
swf.close()
SWFToImage.InputSWFFileName="%d.pywenku"%i
SWFToImage.ImageOutputType = 1
SWFToImage.Execute_Begin()
SWFToImage.FrameIndex = 1
SWFToImage.Execute_GetImage()
SWFToImage.SaveToFile("%d.jpg"%i)
SWFToImage.Execute_End()
os.rename("%d.pywenku"%i,"%d.swf"%i)
res.close()
print 'task complete'

相關(guān)文章

  • Perl5 OOP學(xué)習(xí)筆記

    Perl5 OOP學(xué)習(xí)筆記

    在Perl排名持續(xù)下降的情況下學(xué)Perl,似乎是有點不明智。但是,工作需要,不得不學(xué)啊。再說,Perl現(xiàn)在在測試領(lǐng)域還是用得非常多的。Phython雖然也在測試領(lǐng)域開始活躍起來,不過我始終還是不太喜歡Phython的語法。
    2009-04-04
  • Perl中的控制結(jié)構(gòu)學(xué)習(xí)筆記

    Perl中的控制結(jié)構(gòu)學(xué)習(xí)筆記

    這篇文章主要介紹了Perl中的控制結(jié)構(gòu)學(xué)習(xí)筆記,本文講解了條件語句if、條件語句unless、循環(huán)語句while、循環(huán)語句until、for循環(huán)、foreach語句、循環(huán)控制等內(nèi)容,需要的朋友可以參考下
    2014-11-11
  • Perl6中的垃圾收集

    Perl6中的垃圾收集

    今天小編就為大家分享一篇關(guān)于perl6垃圾收集的文章,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • perl中子程序中參數(shù)的兩種引用(傳遞)方式介紹

    perl中子程序中參數(shù)的兩種引用(傳遞)方式介紹

    這里主要討論的是當(dāng)你要傳遞的參數(shù)不是僅僅一個的時候,也就是兩個以上,并且他們數(shù)據(jù)的類型還不一致的時候,我們要遇到的問題
    2013-03-03
  • Perl中的10個操作日期和時間的CPAN模塊介紹

    Perl中的10個操作日期和時間的CPAN模塊介紹

    這篇文章主要介紹了Perl中的10個操作日期和時間的CPAN模塊介紹,本文介紹了Date::Manip、DateTime、Time::Format、Time::Interval、Date::Convert、Benchmark、Time::Normalize、Regexp::Common::time等10個模塊,需要的朋友可以參考下
    2015-02-02
  • perl 標(biāo)量和運算符的一些知識介紹

    perl 標(biāo)量和運算符的一些知識介紹

    有關(guān)perl的標(biāo)量和運算符的一些知識,有需要的朋友可以看看
    2013-02-02
  • perl幾個文件操作例子

    perl幾個文件操作例子

    這篇文章主要介紹了perl幾個文件操作例子,講解了刪除文件、讀取文件、一次性讀取等,需要的朋友可以參考下
    2014-06-06
  • 用Perl操作Excel文檔的實例代碼

    用Perl操作Excel文檔的實例代碼

    用Perl操作Excel文檔的例子,有需要的朋友可以參考下
    2013-02-02
  • perl中my和our的區(qū)別分析

    perl中my和our的區(qū)別分析

    perl中my和our的區(qū)別分析,需要的朋友可以參考一下
    2013-04-04
  • Perl字符串比較和整數(shù)比較的區(qū)別詳解

    Perl字符串比較和整數(shù)比較的區(qū)別詳解

    這篇文章主要介紹了詳解Perl字符串比較和整數(shù)比較的區(qū)別,需要的朋友可以參考下
    2017-09-09

最新評論