class DescargarPdf: def __init__(self): self.tbb_dir = "/usr/local/share/tor-browser_en-US" self.usuario = [] self.contraseñaTxT = [] self.conversor = '?convertedTo=pdf' def iniciarTor(self): self.zLibraty = TorBrowserDriver(self.tbb_dir, tbb_logfile_path='test.log') def iniciarSecion(self): self.element = self.zLibraty.find_element_by_name("email") self.element.send_keys(self.correo) sleep(2) self.element2 = self.zLibraty.find_elements_by_class_name( "form-control")[1] self.element2.send_keys(self.contraseña) self.element2.send_keys(Keys.RETURN) def paginaDescargas(self): print("estoy en la funcion paginaDescagas") sleep(4) self.zLibraty.get(self.url) self.html = self.zLibraty.page_source def paginaPrinsipal(self, añoInicial, añoFinal): self.urlAños = 'http://zlibraryexau2g3p.onion/s/?yearFrom=' + str( añoInicial) + '&yearTo=' + str(añoFinal) self.url = self.urlAños def cambiarPagina(self, x): self.url += '&page=' + str(x) def Crearcsv(self): self.carpetaUrl = '/home/dgc7/Documentos/zlibrary/libros1920-1921/url' try: os.mkdir(self.carpetaUrl) except OSError as e: if e.errno != errno.EEXIST: raise self.escrivirUrlWed = csv.writer( open('/home/dgc7/Documentos/zlibrary/libros1920-1921/url/url2.csv', 'w')) self.imprimirUrlPdf = csv.writer( open( '/home/dgc7/Documentos/zlibrary/libros1920-1921/url/urlDowload2.csv', 'w')) def credenciales(self, numeroUsuario): print("llegue") self.correo = self.usuario[numeroUsuario] self.contraseña = self.contraseñaTxT[numeroUsuario] self.urlLoguin = 'http://zlibraryexau2g3p.onion' self.zLibraty.get(self.urlLoguin) def UsuariosYcontraseñas(self): self.dir = '/home/dgc7/Documentos/zlibrary/credenciales/contraseñasYcorreos.txt' self.data = open(self.dir, 'r+') for self.i in range(0, 200): if self.i % 2 == 0: self.usuario.append(self.data.readline()) if self.i % 2 != 0: self.contraseñaTxT.append(self.data.readline()) def urlPdf(self, ): self.boleanoPdf = 0 self.respaldoContador = 0 self.contadorUsuarios = usuarioUsadosLeer() self.contadorLibros = datosDescarga(4) self.contadorLibros2 = self.contadorLibros % 10 self.Crearcsv() self.soup = BeautifulSoup(self.html, 'html.parser') try: for self.urlwed in self.soup.find_all(itemprop="name"): self.contador = 0 self.urlwed = self.urlwed.find('a', href=re.compile('')) self.urlDowload = self.urlwed.get('href') self.urlpdfGeleneralH = re.sub('/book/', 'https://b-ok.cc/book/', self.urlDowload) self.urlDowload = re.sub( '/book/', 'http://zlibraryexau2g3p.onion/book/', self.urlDowload) self.escrivirUrlWed.writerow([self.urlDowload]) print(self.urlDowload) voleano = validarFormato(self.urlpdfGeleneralH) guardarNumeroDescargas(self.contadorLibros) print(self.respaldoContador) if self.contadorLibros == self.respaldoContador: for self.urlRedirec in range(0, 1): self.zLibraty.get(self.urlDowload) sleep(5) self.htmlPdf = self.zLibraty.page_source self.soupRedirec = BeautifulSoup( self.htmlPdf, 'html.parser') self.urlDowloadPDF = self.soupRedirec.find( class_="btn btn-primary dlButton addDownloadedBook" ) self.urlDowloadPDF = self.urlDowloadPDF.get('href') self.urlDowloadPDF = re.sub( '/dl/', 'http://zlibraryexau2g3p.onion/dl/', self.urlDowloadPDF) self.imprimirUrlPdf.writerow([self.urlDowloadPDF]) print(self.urlDowloadPDF) print("vamos a por el if") sleep(10) if voleano == True: self.zLibraty.set_page_load_timeout(8) try: self.zLibraty.get(self.urlDowloadPDF) except: self.zLibraty.set_page_load_timeout(70) self.zLibraty.refresh() print("funciona PDF ") voleano = False sleep(5) self.contadorLibros += 1 self.contadorLibros2 += 1 else: try: self.zLibraty.set_page_load_timeout(5) try: self.zLibraty.get(self.urlDowloadPDF) except: sleep(4) pyautogui.press("down") sleep(2) pyautogui.press("enter") self.zLibraty.set_page_load_timeout(70) except: print( "\nerror al controlasr el teclado y dar enter\n" ) raise sleep(5) self.zLibraty.refresh() self.contadorLibros += 1 self.contadorLibros2 += 1 sleep(20) tiempoDescarga() informaiconPdf(self.urlpdfGeleneralH) self.respaldoContador += 1 if self.contadorLibros == self.respaldoContador: if self.contadorLibros2 % 10 == 0: print((self.contadorLibros2 - 1) % 10) self.contador += 1 pyautogui.hotkey("ctrl", "shift", "u") sleep(2) pyautogui.press("enter") sleep(7) pyautogui.press("enter") sleep(15) self.contadorUsuarios += 1 print(self.contadorUsuarios) try: self.zLibraty.switch_to_window( self.zLibraty.window_handles[0]) except: print("error al cambian de ventana") usuarioUsadosReescrivir(self.contadorUsuarios) print("por aqui¿¿¿¿¿¿") self.credenciales(self.contadorUsuarios) print("no por aqui¿¿¿¿¿¿") sleep(23) self.iniciarSecion() sleep(7) self.contadorLibros2 = 0 sleep(15) print("numero de li bros por usuario ", self.contadorLibros2) if self.contador == 5: self.contador = 0 except OSError as e: print(e.strerror) print("error en la urlPdf:::::") guardarNumeroDescargas(self.contadorLibros) usuarioUsadosReescrivir(self.contadorUsuarios) print(self.contadorLibros) raise print("termine la pagina") def DescargarContenido(self, _html): self.contenido = _html def serrarTor(self): self.zLibraty.close()
class DescargarPdf: def __init__(self): self.contadorCredenciales=0 self.tbb_dir = "/usr/local/share/tor-browser_en-US" self.usuario=[] self.contraseñaTxT=[] self.conversor='?convertedTo=pdf' def iniciarTor(self): self.zLibraty = TorBrowserDriver(self.tbb_dir, tbb_logfile_path='test.log') def iniciarSecion(self): self.element=self.zLibraty.find_element_by_name("email") self.element.send_keys(self.correo) sleep(2) self.element2=self.zLibraty.find_elements_by_class_name("form-control")[1] self.element2.send_keys(self.contraseña) self.element2.send_keys(Keys.RETURN) def paginaDescargas(self): print("estoy en la funcion paginaDescagas") self.zLibraty.load_url(self.url) sleep(4) self.html=self.zLibraty.page_source def paginaPrinsipal(self,añoInicial,añoFinal): self.urlAños='http://zlibraryexau2g3p.onion/s/?yearFrom='+str(añoInicial)+'&yearTo='+str(añoFinal) self.url=self.urlAños def cambiarPagina(self,x): print("estoy en cambiar pagina prinsipal") self.url+='&page='+str(x) print(self.url) def Crearcsv(self): desde=datosDescarga(1) asta=datosDescarga(2) self.carpetaUrl='/home/dd/Documentos/zlibrary/libros'+str(desde)+'-'+str(asta)+'/url' try : os.mkdir(self.carpetaUrl) except OSError as e: if e.errno != errno.EEXIST: raise self.escrivirUrlWed=csv.writer(open('/home/dd/Documentos/zlibrary/libros'+str(desde)+'-'+str(asta)+'/url/url2.csv','w')) self.imprimirUrlPdf=csv.writer(open('/home/dd/Documentos/zlibrary/libros'+str(desde)+'-'+str(asta)+'/url/urlDowload2.csv','w')) def credenciales(self,numeroUsuario): print("llegue") if self.contadorCredenciales==0 or self.contadorCredenciales==20: self.zLibraty.load_url("https://singlelogin.org/") self.zLibraty.find_element_by_name("redirectToHost").click() sleep(3) pyautogui.press("down") sleep(2) pyautogui.press("down") sleep(1) pyautogui.press("enter") sleep(5) self.correo=self.usuario[numeroUsuario] self.contraseña=self.contraseñaTxT[numeroUsuario] def UsuariosYcontraseñas(self): self.dir='/home/dd/Documentos/zlibrary/credenciales/contraseñasYcorreos.txt' self.data=open(self.dir,'r+') for self.i in range(0,200): if self.i%2==0 : self.usuario.append(self.data.readline()) if self.i%2!=0: self.contraseñaTxT.append(self.data.readline()) def urlPdf(self,): self.contadorCredenciales=1 self.boleanoPdf=0 self.respaldoContador=0 self.contadorUsuarios=usuarioUsadosLeer() self.contadorLibros=datosDescarga(4) self.contadorLibros2=self.contadorLibros%10 self.Crearcsv() self.soup=BeautifulSoup(self.html,'html.parser') try: for self.urlwed in self.soup.find_all(itemprop = "name") : self.contador=0 self.urlwed=self.urlwed.find('a',href=re.compile('')) self.urlDowload=self.urlwed.get('href') self.urlpdfGeleneralH=re.sub('/book/','https://b-ok.cc/book/',self.urlDowload) self.urlDowload=re.sub('/book/','http://zlibraryexau2g3p.onion/book/',self.urlDowload) self.escrivirUrlWed.writerow([self.urlDowload]) print(self.urlDowload) self.voleano=validarFormato(self.urlpdfGeleneralH) guardarNumeroDescargas(self.contadorLibros) print(self.respaldoContador) if self.contadorLibros==self.respaldoContador: for self.urlRedirec in range(0,1): self.zLibraty.load_url(self.urlDowload) sleep(5) self.htmlPdf=self.zLibraty.page_source self.soupRedirec=BeautifulSoup(self.htmlPdf,'html.parser') self.urlDowloadPDF=self.soupRedirec.find(class_="btn btn-primary dlButton addDownloadedBook") self.urlDowloadPDF=self.urlDowloadPDF.get('href') self.urlDowloadPDF=re.sub('/dl/','http://zlibraryexau2g3p.onion/dl/',self.urlDowloadPDF) self.imprimirUrlPdf.writerow([self.urlDowloadPDF]) print(self.urlDowloadPDF) print("vamos a por el if") sleep(15) if self.voleano==True: self.zLibraty.set_page_load_timeout(12) try: self.zLibraty.load_url(self.urlDowloadPDF) except: sleep(5) self.zLibraty.set_page_load_timeout(7000) print("funciona PDF ") self.voleano=False sleep(5) self.contadorLibros+=1 self.contadorLibros2+=1 else: self.zLibraty.set_page_load_timeout(12) try: self.zLibraty.load_url(self.urlDowloadPDF) except: sleep(8) pyautogui.press("down") sleep(2) pyautogui.press("enter") self.zLibraty.set_page_load_timeout(7000) sleep(5) self.contadorLibros+=1 self.contadorLibros2+=1 self.zLibraty.load_url("about:downloads") self.datosEsperaDescarga() self.peticiones() self.zLibraty.back() informaiconPdf(self.urlpdfGeleneralH) guardarNumeroDescargas(self.contadorLibros) self.respaldoContador+=1 if self.contadorLibros==self.respaldoContador: if self.contadorLibros2%10==0: print((self.contadorLibros2-1)%10) self.contador+=1 if self.contadorLibros==20: self.contadorCredenciales=20 print("saliendo de secion¡¡¡¡¡¡") pyautogui.moveTo(1707,245) pyautogui.hotkey("ctrl","shift","u") sleep(2) pyautogui.press("enter") sleep(7) pyautogui.press("enter") sleep(15) else: print("saliendo de secion") self.zLibraty.get("http://zlibraryexau2g3p.onion/logout.php") self.contadorUsuarios+=1 print(self.contadorUsuarios) try: self.zLibraty.switch_to_window(self.zLibraty.window_handles[0]) except: print("error al cambian de ventana") usuarioUsadosReescrivir(self.contadorUsuarios) print("por aqui¿¿¿¿¿¿") self.credenciales(self.contadorUsuarios) self.contadorCredenciales=1 print("no por aqui¿¿¿¿¿¿") sleep(20) self.iniciarSecion() sleep(15) self.paginaDescargas() sleep(7) self.contadorLibros2=0 sleep(15) print("numero de li bros por usuario ",self.contadorLibros2) if self.contador==5: self.contador=0 except OSError as e : print(e.strerror) print("error en la urlPdf:::::") guardarNumeroDescargas(self.contadorLibros) usuarioUsadosReescrivir(self.contadorUsuarios) print(self.contadorLibros) archivos=int(contarNueroArchivos()) print(archivos) self.zLibraty.load_url("about:downloads") self.datosEsperaDescarga() self.peticiones() self.zLibraty.back() informaiconPdf(self.urlpdfGeleneralH) def DescargarContenido(self,_html): self.contenido=_html def serrarTor(self): self.zLibraty.close() def datosEsperaDescarga(self): sleep(4) self.htmlValidador=self.zLibraty.page_source def validarDescarga(self): self.htmlFalce=self.zLibraty.page_source self.soupFalce=BeautifulSoup(self.htmlFalce,"html.parser") self.validarfalce=self.soupFalce.find_all("description",class_="downloadDetails downloadDetailsNormal") self.respuestafalce=re.search("value=.+",str(self.validarfalce)) self.buscarFalse=self.respuestafalce.group() if re.search("Canceled",self.buscarFalse): print("se daño al descarga =(") sleep(5) pyautogui.click(1393,139) sleep(5) else : if re.search("Failed",self.buscarFalse): print("se daño al descarga pero vamos a solucionarlo =( ") sleep(5) pyautogui.click(1393,139) sleep(5) else: print("la descarga va bien =)") def peticiones(self): self.validarDescarga() self.carga=0 self.daño=0 self.conteo=0 while self.carga<100: self.soup=BeautifulSoup(self.htmlValidador,"html.parser") try: self.archivoDescarga=self.soup.find_all("progress",class_="downloadProgress") self.respaldo=re.split("value",str(self.archivoDescarga)) self.tiempo=re.search("[0-9]+",self.respaldo[1]) print(self.tiempo.group()) self.carga=int(self.tiempo.group()) self.datosEsperaDescarga() sleep(3) self.validarDescarga() if self.conteo==3: pyautogui.press("enter") self.conteo=0 except: print("o no ,se daño la descargar y no la e podido volver a iniciar") if self.daño==7: os.system('rm -r /home/dd/zlibros/libros1920-1921/libro/*.*') raise self.daño+=1 sleep(5)