python实现爬虫下载漫画示例
代码如下:
#!/usr/bin/python3.2
import os,socket
import urllib
import urllib.request,threading,time
import re,sys
global manhuaweb,weburl,floder,chapterbegin,currentthreadnum,threadcount,mutex,mutex2
weburl=''
floder=''
chapterbegin=0
currentthreadnum=0
threadcount=6
if len(sys.argv)>=3:
weburl=sys.argv[1]
floder=sys.argv[2]
else:
print("usag: downloadmanhua weburl floder chapterbegin=0 threadnnum=6")
sys.exit(0)
if len(sys.argv)>=4:
chapterbegin=int(sys.argv[3])
if len(sys.argv)>=5:
threadcount=(int)(sys.argv[4])
def jin(i,jinzhi):
finalans=""
answer=i%jinzhi
i=int(i/jinzhi)
if answer>9:
finalans=finalans+chr(ord('a')+(answer-10))
else:
finalans=finalans+str(answer)
if i!=0:
finalans=jin(i,jinzhi)+finalans
return finalans
def urlparse(p,a,c,k):
d={}
e=lambda c: jin(c,36)
if 1:
while c:
c=c-1
if not k[c]:
d[jin(c,36)]=jin(c,36)
else:
d[jin(c,36)]=k[c]
k=[lambda e:d[e]]
e=lambda c:'\\w+'
c=1
newstr=""
while c:
c=c-1
if k[c]:
for i in range(0,len(p)):
tempi=p[i]
tempi=ord(tempi)
if tempi>=ord('a') and tempi newstr+=d[chr(tempi)]
elif tempi>=ord('0') and tempi newstr+=d[chr(tempi)]
else:
newstr+=chr(tempi)
return newstr
def meispower(s):
p=re.compile(r"(?=\}\().*",re.IGNORECASE)
s=p.findall(s)
s=s[0]
s=s[0:(len(s)-19)]
par=s.split(',')
par[3]=par[3][1:len(par[3])]
answer=par[3].split('|')
chapterpath=urlparse(par[0],int(par[1]),int(par[2]),answer)
allurl=re.findall('imgpath=[^;]*',chapterpath)[0]
allurl=allurl[10:(len(allurl)-2)]
return allurl
def pictofile(weburl,filename,loop=100):
if loop print('can\'t download the picture %s'%weburl)
return
loop=loop-1
if os.path.exists(filename):
return
try:
url=urllib.request.urlopen(weburl)
data=url.read()
if len(data) url.close()
pictofile(weburl,filename,loop)
else:
print('download from %s name is %s\n'%(weburl,filename))
myfile=open('%s'%filename,'wb')
myfile.write(data)
myfile.close()
url.close();
except socket.timeout:
print('timeout')
pictofile(weburl,filename,loop)
except Exception as e:
print('error',e)
pictofile(weburl,filename,loop)
finally:
pass
def downloadpic(url,loadpicdir,num):
#download the all url picture to loadpicdir
global currentthreadnum,mutex,mutex2
mymode=re.compile(r'[0-9a-z.]*\Z')
try:
mutex2.acquire()
os.chdir(loadpicdir)
mutex2.release()
except:
print("can't open the floder %s will be create"%loadpicdir)
try:
if(mutex2.locked()):
os.mkdir(loadpicdir)
os.chdir(loadpicdir)
mutex2.release()
print('create floder succeed')
except:
print("can't create floder %s"%loadpicdir)
if(mutex.acquire()):
mutex.release()
quit(0)
name=mymode.findall(url)
filename='manhua'+name[0]
pictofile(url,loadpicdir+'//'+str(num)+'-'+filename)
mutex.acquire()
currentthreadnum=currentthreadnum-1
mutex.release()
def downloadchapter(url,loadpicdir,num,begin=0):
global manhuaweb,threadcount,currentthreadnum,mutex
print(manhuaweb+url)
webdata=urllib.request.urlopen(manhuaweb+url).read()
webdata=webdata.decode('UTF-8')
chaptername=re.findall(r'
chaptername=chaptername[7:len(chaptername)]
webscrip=re.findall(r'eval.*[^]',webdata)
chapterurl=meispower(webscrip[0]);
chapterurl='http://mhimg.ali213.net'+chapterurl
for i in range(begin,num):
try:
while(currentthreadnum>=threadcount):
time.sleep(0.5)
mutex.acquire()
currentthreadnum=currentthreadnum+1
mutex.release()
threading.Thread(target=downloadpic,args=(r'%s%d.jpg'%(chapterurl,i),loadpicdir+chaptername,num)).start()
except socket.error:
mutex.acquire()
i=i-1
currentthreadnum=currentthreadnum-1
mutex.release()
except Exception as error:
print(error,'break')
print('download chapter %d of picture make a error'%i)
break
if __name__=='__main__':
manhuaweb=r'http://manhua.ali213.net'
socket.setdefaulttimeout(60.0)
mutex=threading.Lock()
mutex2=threading.Lock()
webfile=urllib.request.urlopen(weburl)
webdata=webfile.read();
webdata=webdata.decode('UTF-8')
meshmode=re.compile(r'
meshdata=meshmode.findall(webdata)[0]
indexmode=re.compile(r'([0-9]*页)')
indexdata=indexmode.findall(meshdata)
picurlmode=re.compile(r'/comic/[0-9/]*.html')
picurldata=picurlmode.findall(meshdata)
chapterlength=len(picurldata)
nummode=re.compile(r'[\d]+')
i=chapterbegin
while i
downloadchapter(manhuachapter,floder,int(nummode.findall(indexdata[chapterlength-i-1])[0]))
i=i+1

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Perisian Tomato Novel adalah platform bacaan yang sangat kaya Di samping menyediakan sejumlah besar sumber novel, ia juga merangkumi pelbagai sumber komik. Jika anda meminati komik, Novel Tomato pastinya menjadi pilihan yang tidak boleh dilepaskan. Terdapat banyak jenis komik di sini, yang dikemas kini dalam masa nyata sama ada penulis atau karya yang anda suka, anda boleh mencarinya dengan tepat Jadi bagaimana untuk membaca komik pada Novel Tomato ini akan memberi anda pengenalan terperinci langkah-langkahnya. Semoga dapat membantu semua yang memerlukan. Bagaimana cara membaca komik novel Tomato? 1. Buka APP Novel Tomato. 2. Klik pada komik. 3. Pilih komik yang anda suka dan klik untuk menonton. 4. Leret ke bawah untuk membaca.

Masa yang diperlukan untuk mempelajari crawler Python berbeza dari orang ke orang dan bergantung pada faktor seperti keupayaan pembelajaran peribadi, kaedah pembelajaran, masa pembelajaran dan pengalaman. Mempelajari crawler Python bukan sekadar mempelajari teknologi itu sendiri, tetapi juga memerlukan kemahiran mengumpul maklumat yang baik, kemahiran menyelesaikan masalah dan kemahiran kerja berpasukan. Melalui pembelajaran dan latihan berterusan, anda akan berkembang secara beransur-ansur menjadi pembangun perangkak Python yang cemerlang.

Analisis masalah biasa dan penyelesaian untuk perangkak PHP Pengenalan: Dengan perkembangan pesat Internet, pemerolehan data rangkaian telah menjadi pautan penting dalam pelbagai bidang. Sebagai bahasa skrip yang digunakan secara meluas, PHP mempunyai keupayaan hebat dalam pemerolehan data Salah satu teknologi yang biasa digunakan ialah perangkak. Walau bagaimanapun, dalam proses membangunkan dan menggunakan perangkak PHP, kami sering menghadapi beberapa masalah. Artikel ini akan menganalisis dan memberikan penyelesaian kepada masalah ini dan memberikan contoh kod yang sepadan. 1. Perihalan masalah bahawa data halaman web sasaran tidak dapat dihuraikan dengan betul.

Dalam pembangunan perangkak, pengendalian kuki selalunya merupakan bahagian yang penting. Sebagai mekanisme pengurusan keadaan dalam HTTP, kuki biasanya digunakan untuk merekodkan maklumat log masuk pengguna dan tingkah laku mereka adalah kunci untuk perangkak untuk mengendalikan pengesahan pengguna dan mengekalkan status log masuk. Dalam pembangunan perangkak PHP, pengendalian kuki memerlukan penguasaan beberapa kemahiran dan memberi perhatian kepada beberapa perangkap. Di bawah ini kami menerangkan secara terperinci cara mengendalikan kuki dalam PHP. 1. Bagaimana untuk mendapatkan Cookie semasa menulis dalam PHP

Anda boleh mencari dan membaca komik sendiri dalam perisian Anime Home Sesetengah pengguna masih tidak pasti mengapa mereka tidak boleh membaca komik dalam Anime Home Jika hak cipta komik dibeli oleh aplikasi lain, mereka tidak boleh membacanya. Seterusnya, editor membawakan kepada pengguna komik yang mereka tidak boleh membaca Pengenalan kepada sebab, pengguna yang berminat datang dan lihat! Mengapa saya tidak boleh menonton komik dalam Anime Home Jawapan: Saya tidak boleh menonton komik kerana perubahan hak cipta Butiran: 1. Cari komik yang anda ingin baca dalam perisian. 2. Kandungan komik tidak akan muncul. Ia mungkin ciptaan kedua atau tidak dapat ditemui secara langsung. 3. Hak cipta mungkin telah dibeli oleh perisian lain Sebagai contoh, ia hanya boleh dibaca di pusat komik stesen b. 4. Disebabkan oleh perubahan hak cipta, sesetengah komik tidak lagi tersedia dan hanya boleh dibaca pada perisian berhak cipta.

Amalan perangkak Java: Cara merangkak data halaman web dengan cekap Pengenalan: Dengan perkembangan pesat Internet, sejumlah besar data berharga disimpan dalam pelbagai halaman web. Untuk mendapatkan data ini, selalunya perlu untuk mengakses setiap halaman web secara manual dan mengekstrak maklumat satu demi satu, yang sudah pasti tugas yang membosankan dan memakan masa. Untuk menyelesaikan masalah ini, orang ramai telah membangunkan pelbagai alat crawler, antaranya Java crawler adalah salah satu yang paling biasa digunakan. Artikel ini akan membawa pembaca memahami cara menggunakan Java untuk menulis perangkak web yang cekap dan menunjukkan amalan melalui contoh kod tertentu. 1. Pangkal reptilia

Dengan perkembangan pesat teknologi Internet, aplikasi Web semakin digunakan dalam kerja dan kehidupan harian kita. Dalam proses pembangunan aplikasi web, merangkak data halaman web adalah tugas yang sangat penting. Walaupun terdapat banyak alat pengikis web di pasaran, alat ini tidak begitu cekap. Untuk meningkatkan kecekapan merangkak data halaman web, kami boleh menggunakan gabungan PHP dan Selenium. Pertama, kita perlu memahami apa itu PHP dan Selenium. PHP adalah kuat

Memandangkan pasaran filem terus berkembang dan berkembang, permintaan orang ramai terhadap filem juga semakin tinggi. Bagi penilaian filem, Pengkritik Filem Douban sentiasa menjadi pilihan yang lebih berwibawa dan popular. Kadangkala, kami juga perlu melakukan analisis dan pemprosesan tertentu pada ulasan filem Douban, yang memerlukan penggunaan teknologi perangkak untuk mendapatkan maklumat tentang ulasan filem Douban. Artikel ini akan memperkenalkan tutorial tentang cara menggunakan PHP untuk merangkak ulasan filem Douban untuk rujukan anda. Dapatkan alamat halaman filem Douban Sebelum merangkak ulasan filem Douban, anda perlu mendapatkan alamat halaman filem Douban. OK
