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

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Le temps nécessaire pour apprendre les robots d'exploration Python varie d'une personne à l'autre et dépend de facteurs tels que la capacité d'apprentissage personnelle, les méthodes d'apprentissage, le temps d'apprentissage et l'expérience. L'apprentissage des robots d'exploration Python ne consiste pas seulement à apprendre la technologie elle-même, mais nécessite également de bonnes compétences en matière de collecte d'informations, de résolution de problèmes et de travail d'équipe. Grâce à un apprentissage et à une pratique continus, vous deviendrez progressivement un excellent développeur de robots Python.

Le logiciel Tomato Novel est une plateforme de lecture très riche. En plus de fournir un grand nombre de ressources romanes, il couvre également une variété de ressources de bandes dessinées. Si vous êtes intéressé par la bande dessinée, Tomato Novels est définitivement un choix à ne pas manquer. Il existe de nombreux types de bandes dessinées ici, qui sont mises à jour en temps réel. Qu'il s'agisse de l'auteur ou de l'œuvre que vous aimez, vous pouvez la trouver avec précision. Alors, comment lire des bandes dessinées sur Tomato Novel ? les étapes. J’espère que cela pourra aider tous ceux qui en ont besoin. Comment lire les bandes dessinées du roman Tomato ? 1. Ouvrez l'application Tomato Novels. 2. Cliquez sur la bande dessinée. 3. Sélectionnez la bande dessinée que vous aimez et cliquez pour la regarder. 4. Faites glisser votre doigt vers le bas pour lire.

Analyse des problèmes courants et solutions pour les robots PHP Introduction : Avec le développement rapide d'Internet, l'acquisition de données réseau est devenue un maillon important dans divers domaines. En tant que langage de script largement utilisé, PHP possède de puissantes capacités d’acquisition de données. L’une des technologies couramment utilisées est celle des robots d’exploration. Cependant, lors du développement et de l’utilisation des robots d’exploration PHP, nous rencontrons souvent des problèmes. Cet article analysera et proposera des solutions à ces problèmes et fournira des exemples de code correspondants. 1. Description du problème selon lequel les données de la page Web cible ne peuvent pas être correctement analysées.

Dans le développement de robots d'exploration, la gestion des cookies est souvent une partie essentielle. En tant que mécanisme de gestion d'état dans HTTP, les cookies sont généralement utilisés pour enregistrer les informations de connexion et le comportement des utilisateurs. Ils constituent la clé permettant aux robots d'exploration de gérer l'authentification des utilisateurs et de maintenir l'état de connexion. Dans le développement de robots PHP, la gestion des cookies nécessite de maîtriser certaines compétences et de prêter attention à certains pièges. Ci-dessous, nous expliquons en détail comment gérer les cookies en PHP. 1. Comment obtenir un cookie lors de l'écriture en PHP

Vous pouvez rechercher et lire des bandes dessinées par vous-même dans le logiciel Anime Home. Certains utilisateurs ne savent toujours pas pourquoi ils ne peuvent pas lire les bandes dessinées dans Anime Home. Si les droits d'auteur des bandes dessinées sont achetés par d'autres applications, ils ne peuvent pas les lire. Ensuite, l'éditeur propose aux utilisateurs les bandes dessinées qu'ils ne savent pas lire. Une introduction aux raisons, les utilisateurs intéressés viennent y jeter un œil ! Pourquoi ne puis-je pas regarder des bandes dessinées dans Anime Home ? Réponse : Je ne peux pas regarder des bandes dessinées en raison de modifications des droits d'auteur. Détails : 1. Recherchez les bandes dessinées que vous souhaitez lire dans le logiciel. 2. Le contenu de la bande dessinée n'apparaîtra pas. Il peut s'agir d'une deuxième création ou ne peut pas être trouvé directement. 3. Le droit d'auteur peut avoir été acheté par d'autres logiciels. Par exemple, il ne peut être lu que dans le centre de bandes dessinées de la station b. 4. En raison de modifications des droits d'auteur, certaines bandes dessinées ne sont plus disponibles et ne peuvent être lues que sur des logiciels protégés par le droit d'auteur.

Pratique du robot d'exploration Java : Comment explorer efficacement les données d'une page Web Introduction : Avec le développement rapide d'Internet, une grande quantité de données précieuses est stockée dans diverses pages Web. Pour obtenir ces données, il est souvent nécessaire d’accéder manuellement à chaque page web et d’en extraire les informations une par une, ce qui est sans doute une tâche fastidieuse et chronophage. Afin de résoudre ce problème, les utilisateurs ont développé divers outils de robots d'exploration, parmi lesquels le robot d'exploration Java est l'un des plus couramment utilisés. Cet article amènera les lecteurs à comprendre comment utiliser Java pour écrire un robot d'exploration Web efficace et à démontrer la pratique à travers des exemples de code spécifiques. 1. La base du reptile

À mesure que le marché du film continue de s'étendre et de se développer, la demande de films est également de plus en plus élevée. En ce qui concerne l'évaluation des films, Douban Film Critics a toujours été un choix plus faisant autorité et plus populaire. Parfois, nous devons également effectuer certaines analyses et traitements sur les critiques de films Douban, ce qui nécessite l'utilisation d'une technologie d'exploration pour obtenir des informations sur les critiques de films Douban. Cet article présentera un didacticiel sur la façon d'utiliser PHP pour explorer les critiques de films Douban pour votre référence. Obtenez l'adresse de la page des films Douban. Avant d'explorer les critiques de films Douban, vous devez obtenir l'adresse de la page des films Douban. D'ACCORD

Bilibili est un site Web de vidéos de barrage populaire en Chine. C'est également un trésor contenant toutes sortes de données. Parmi elles, les données de barrage sont une ressource très précieuse, c'est pourquoi de nombreux analystes de données et chercheurs espèrent obtenir ces données. Dans cet article, je présenterai l'utilisation du langage PHP pour explorer les données du barrage Bilibili. Travail de préparation Avant de commencer à explorer les données du barrage, nous devons installer un framework de robot d'exploration PHP Symphony2. Vous pouvez entrer via la commande suivante
