Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import requests
- import re
- import threading
- import os
- #SCRIPT FEITA POR JURISHCRYPTER
- #SE COMPARTILHAR PF DEIXAR CREDITOS
- #EXCLUSIVA DO THOTHUB.TV
- #--------CONFIGURAÇÃO--------
- #Coloque a URL do site entre aspas abaixo:
- URL_IGOR = "https://www.igormenezes.fot.br/portfolio/ensaio-interno/228429-ensaio-sensual-feminino-interno-sara-caus"
- #Numero de tarefas em paralelo para pesquisar no site (não exagere senão da erro)
- MAX_THREADS = 20
- #Nome do arquivo onde serão salvos os links obtidos do site (catalogados)
- ARQUIVO_LINKS = "linksNoSite.txt"
- #Nome do arquivo onde serão salvos os links encontrados no site (não catalogados)
- ARQUIVO_ENCONTRADOS = "linksEncontrados.txt"
- #Pasta onde TODAS as fotos serão salvas
- PASTA_FOTOS = "ThotHub"
- #Procurar por X fotos a mais
- PROCURAR_MAIS = 200
- #--------FIM---CONFIG--------
- #NÃO MEXER
- headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.76 Safari/537.36'}
- threadLock = threading.Lock()
- smphr = threading.Semaphore(value=MAX_THREADS)
- threads = []
- file_found = open(ARQUIVO_ENCONTRADOS,"w+")
- class iniciaScrapper(threading.Thread):
- def __init__(self, ind, album, foundArray, folderName):
- threading.Thread.__init__(self)
- self.curBest = 0
- self.ind = ind
- self.album = album
- self.found = foundArray
- self.folder = folderName
- def run(self):
- smphr.acquire()
- withEditar=False
- while(True):
- filename=str(self.ind)+("-editar.jpg" if withEditar else ".jpg")
- url=self.album+"_mg_"+filename
- r = requests.get(url, headers)
- if r.status_code == 200:
- print("%s baixada"%filename)
- if(str(self.ind) not in self.found):
- print("foto %s não estava catalogada :D"%filename)
- print(self.album+filename, file=file_found)
- if not os.path.isdir(PASTA_FOTOS):
- os.mkdir(PASTA_FOTOS)
- if not os.path.isdir("%s\%s"%(PASTA_FOTOS, self.folder)):
- os.mkdir("%s\%s"%(PASTA_FOTOS, self.folder))
- with open("%s\%s\%s"%(PASTA_FOTOS, self.folder, filename), 'wb+') as f:
- for chunk in r:
- f.write(chunk)
- if(withEditar):
- withEditar=False
- break
- else:
- withEditar=True
- smphr.release()
- r = requests.get(URL_IGOR, headers)
- if r.status_code == 200:
- linkInfo = re.findall("https\:\/\/storage\.alboom\.ninja\/sites\/(\d+)\/albuns\/(\d+)\/[a-zA-Z0-9 _-]+\.jpg", r.text)
- links = re.findall("https\:\/\/storage\.alboom\.ninja\/sites\/\d+\/albuns\/\d+\/([a-zA-Z0-9 _-]+)\.jpg", r.text)
- folderName = re.findall("\<title\>(.*)\<\/title\>", r.text)[0].split('-')[1].replace(' ','')
- print(folderName)
- siteNum = []
- albumNum = []
- for site, album in linkInfo:
- siteNum = site
- albumNum = album
- break
- albumURL = "https://storage.alboom.ninja/sites/%s/albuns/%s/"%(siteNum,albumNum)
- out = open(ARQUIVO_LINKS,"w+")
- resultadosJaRodados=[]
- menor=re.search("(\d+)", links[0]).group()
- maior=menor
- for link in links:
- atual = re.search("(\d+)", link).group()
- if(atual not in resultadosJaRodados):
- resultadosJaRodados.append(atual)
- print(albumURL+link+".jpg", file=out)
- if(atual<menor):
- menor = atual
- if(atual>maior):
- maior = atual
- out.close()
- print("Foram salvos %d links no arquivo linksNoSite.txt, agora o programa irá tentar encontrar outras fotos"%len(resultadosJaRodados))
- more = int(PROCURAR_MAIS/2)
- for ind in range(int(menor)-more, int(maior)+1+more):
- try:
- thread = iniciaScrapper(ind, albumURL, resultadosJaRodados, folderName).start()
- threads.append(thread)
- except:
- print ("Error: nao foi possivel inicializar a thread")
- for t in threading.enumerate():
- try:
- t.join()
- except:
- print("Error: nao foi possivel escutar a thread")
- file_found.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement