forked from WellingtonLobato/Baixador-de-Mangas
-
Notifications
You must be signed in to change notification settings - Fork 0
/
mangahere.py
executable file
·87 lines (63 loc) · 2.57 KB
/
mangahere.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
# -*- coding: utf-8 -*-
"""
Created on Wed Jul 23 2014
@author: Wellington Viana Lobato Junior
"""
#Deve ser instalado primeiro os modulos BeautifulSoup e mechanize do python
import BeautifulSoup as bfs
import mechanize
import os
def cria_diretorio(manga_name):
count = 1
# Verifica se o diretorio ja existe
while manga_name in os.listdir(os.curdir):
manga_name += '_' + str(count)
print 'Criando diretorio %s' % manga_name
os.mkdir(manga_name)
return manga_name
navegador = mechanize.Browser()
navegador.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')]
#Esse programinha so funciona com o site: http://www.mangahere.co
pgi = raw_input("Entre com o link: \nDeve ser a primeira pagina do manga\n "
"Exemplo: http://www.mangahere.co/manga/golden_boy/v01/c001"
"/\n ->")
# Deve ser a primeira pagina do manga
# Exemplo: "Entre com o link: http://www.mangahere.co/manga/golden_boy/v01/c001/"
html = navegador.open(pgi)
sopa = bfs.BeautifulSoup(html)
opcao_paginas = sopa.findAll('select', {"class": "wid60"})
opcao_paginas = str(opcao_paginas)
nome_diretorio = cria_diretorio(pgi.split('/')[4])
opcao_paginas = opcao_paginas.replace("<option value=", "")
opcao_paginas = opcao_paginas.replace("</option>", "")
opcao_paginas = opcao_paginas.replace('<option selected="selected">', "")
opcao_paginas = opcao_paginas.replace("</select>", "")
opcao_paginas = opcao_paginas.replace(
'<select class="wid60" onchange="change_page(this)">', "")
opcao_paginas = opcao_paginas.replace('[', "")
opcao_paginas = opcao_paginas.replace(']', "")
opcao_paginas = opcao_paginas.replace('selected="selected"', '')
opcao_paginas = opcao_paginas.replace('"', "")
opcao_paginas = opcao_paginas.split("\n") #Transforma a string em lista
opcao_paginas.remove('')
opcao_paginas.remove('')
nome_do_arquivo = 0
print 'Baixando...'
for op in opcao_paginas:
num = op.find(">")
new_pgi = op[0:num]
try:
html2 = navegador.open(new_pgi)
sopa2 = bfs.BeautifulSoup(html2)
new_opcao = sopa2.findAll('img', {"id": "image"})
for img in new_opcao:
filename = str(nome_do_arquivo)+".jpg"
nome_do_arquivo += 1
data = navegador.open(img['src']).read()
save = open(nome_diretorio + '/' + filename, 'wb')
save.write(data)
save.close()
except:
print "Processo finalizado!"
break
#So funciona no Linux!!! Tenho outra versao para Windows...