def parse(self, response): for li in response.css('div#content > div ul > li'): referer = li.css('a ::attr(href)').get() Titulo = li.css('a ::text').get() Titulo = self.give_emoji_free_text(Titulo) #print(Titulo) Cantante, Cancion = separa_titulo(Titulo, '–') Cantante = self.give_emoji_free_text(Cantante) id = self.get_id(referer) url = self.inf_url + id yield Request(url, meta={ 'referer': referer, 'Titulo': Titulo, 'Cantante': Cantante, 'Cancion': Cancion, 'Fecha': self.hoy }, callback=self.parse_attr) #####PASA A LA SIGUIENTE PÁGINA##### self._num_pagina += 1 try: next_page = 'https://mp3teca.com/mp3s/page/{}/'.format( self._num_pagina) yield response.follow(next_page, callback=self.parse) except: pass
def parse_attr(self, response): i = 0 Fecha = date.today().strftime("%d %B, %Y") for T in response.xpath(".//strong[contains(text(), 'MEGA')]"): i += 1 Titulo = self.Limpia_titulo(T.css('::text').get()) Cantante, Album = separa_titulo(Titulo, '–') if i == 1: padre = T.xpath('..') Infringing = padre.css('a ::attr(href)').get() imprime_datos(Titulo,'', Cantante, Album, response.meta['referer'], Infringing) # INGRESA INFRINGING A LA BD LOS DATOS Inserta_Datos(Titulo, Cantante, Album, response.meta['referer'], Infringing, Fecha, self.id_domin) # INGRESA AL INFRINGING POR MEDIO DE SELENIUM self.Datos_Selenium(Titulo, Cantante, Album, response.meta['referer'], Infringing, Fecha, i)
def parse(self, response): #####RECORRE DIVS##### for div in response.css('div.narrowcolumn > div'): infringing = div.css('div >p > a ::text').extract_first() #####VERIFICA QUE INFRINGING CONTENGA TEXTO##### if infringing is not None: #####SI CONTIENE LA PALABRA DOWNLOAD##### if infringing.find('Download') != -1 or infringing.find( 'download') != -1: #####TOMA EL RESTO DE LOS DATOS##### Titulo = div.css('h2 ::attr(title)').get() referer = div.css('h2 ::attr(href)').get() Fecha = div.css('p.postmetadata ::text').get() Fecha = Fecha.replace('\n\t\t\t', '') #####TOMA EL INFRINGING##### infringing = div.css( 'div >p > a ::attr(href)').extract_first() #####VERIFICA QUE NO SEA UNA IMAGEN##### if infringing.find('.png') == -1 or infringing.find( '.jpg') == -1: #####VERIFICA SI ES UN LINK VÁLIDO##### if veri(infringing) == True: #####LIMPIA EL TEXTO DEL TÍTULO##### if Titulo is not None: Titulo = Titulo.replace('\xa0', ' ') #####SEPARA EL CANTANTE Y EL ALBUM DEL TÍTULO##### Cantante, Album = separa_titulo(Titulo, '–') print((Titulo, Cantante, Album, referer, infringing, Fecha)) #####SI NO EXISTE, LO INSERTA LOS DATOS EN LA BD##### if c.existe_inf(infringing) == False: c.inserta_item(Titulo, Cantante, Album, referer, infringing, Fecha, self.id_domin) v.muestra_item_guardado(Titulo) #####PASA A LA SIGUIENTE PÁGINA##### self._num_pagina += 1 try: next_page = 'https://elmanualnlhc.wordpress.com/page/{}/'.format( self._num_pagina) yield response.follow(next_page, callback=self.parse) except: pass
def parse(self, response): print('##### PÁGINA #{} #####'.format(self._num_pagina)) #####RECORRE "ARTICLES"##### for art in response.css('article.item-list'): Titulo = art.css('h2 > a ::text').get() Titulo = self.Limpia_titulo(Titulo) Cantante, Album = separa_titulo(Titulo, '–') Titulo, Cantante, Album = self.acentos(Titulo, Cantante, Album) referer = art.css('h2 > a ::attr(href)').get() for a in art.css('p > a'): try: Inf = a.css('::attr(href)').get() if Inf.find('zippyshare') != -1: Infringing = self.zippy(Inf) imprime_datos(Titulo, '', Cantante, Album, referer, Infringing) # INGRESA INFRINGING A LA BD LOS DATOS Inserta_Datos(Titulo, Cantante, Album, referer, Infringing, self.Fecha, self.id_domin) elif Inf.find('mediafire') != -1: yield Request(Inf, meta={ 'Titulo': Titulo, 'Cantante': Cantante, 'Album': Album, 'Referer': referer }, callback=self.mediaFire) elif Inf.find('userscloud') != -1: Infringing = self.userCloud(Inf) imprime_datos(Titulo, '', Cantante, Album, referer, Infringing) # INGRESA INFRINGING A LA BD LOS DATOS Inserta_Datos(Titulo, Cantante, Album, referer, Infringing, self.Fecha, self.id_domin) except: continue #break next_page = response.css('span#tie-next-page > a ::attr(href)').get() if next_page: self._num_pagina += 1 yield response.follow(next_page, callback=self.parse)
def parse_attr(self, response): #print(response.text) i = 0 Titulos = [] Fecha = date.today().strftime("%d %B, %Y") driver = webdriver.Chrome( 'C:\\Users\\APDIF\\Desktop\\chromedriver.exe') driver.get(response.url) for str in driver.find_elements_by_xpath('//p/strong'): i += 1 if i % 2 != 0: Titulos.append(str.text) #print(str.text) else: continue i = 0 tam = len(Titulos) for a in driver.find_elements_by_css_selector('p > a'): #print(i) if i == 0: i += 1 continue if i == tam: break inf = a.get_attribute('href') driver.execute_script("window.open(arguments[0]);", inf) driver.switch_to.window(driver.window_handles[1]) time.sleep(1) Infringing_mega = driver.current_url driver.close() driver.switch_to.window(driver.window_handles[0]) Titulo = self.Limpia_titulo(Titulos[i]) Cantante, Album = separa_titulo(Titulo, '–') imprime_datos(Titulo, '', Cantante, Album, response.url, Infringing_mega) # INGRESA INFRINGING A LA BD LOS DATOS Inserta_Datos(Titulo, Cantante, Album, response.url, Infringing_mega, Fecha, self.id_domin) i += 1 driver.quit()