예제 #1
0
class manuelturizoadn(scrapy.Spider):
    name = 'manuelturizoadn'
    _num_pagina = 1
    start_urls = ['https://downloadmanuelturizoadn.wordpress.com']
    
    id_domin = 5
    nombre_trelacion = 'dominios'
    #####CREA OBJETO#####
    c = Controler(ModelSQLite(), View())
    
    
    def __init__(self, name=None, **kwargs):
        #####CREA TABLA#####
        self.c.crea_tabla(self.nombre_trelacion)
        if self.c.existe_id(self.id_domin, self.nombre_trelacion) == False:
        #####TOMA LA FECHA ACTUAL#####
            hoy = date.today().strftime("%d %B, %Y")
        #####INSERTA EN LA TABLA RELACIONAL#####
            #id_trelacion = c.ultimo_id(self.nombre_trelacion)
            self.c.inserta_item_relacional(self.id_domin, self.start_urls[0], hoy, self.nombre_trelacion)
            
            
            
    def parse(self, response):
        #####COMENTARIOS#####
        print('\n########Pagina ' + str(self._num_pagina) + '########')
        #####TOMA LOS DATOS DE LA PÁGINA#####
        titulo = response.css('h1.entry-title ::text').get()
        referer = response.css('figure > a ::attr(href)').get()
        fecha = response.css('time.entry-date.published.updated ::text').get()
        cantante, album = separa_titulo(titulo, '–')
        album = separa(album,' ', 1)
        
        #####LLAMA AL REFERER#####
        yield scrapy.Request(referer, callback= self.parse_attr, meta= {'fecha': fecha, 'referer': referer, 'titulo': titulo, 'cantante': cantante, 'album': album})
        
        
    def parse_attr(self, response):
        inf = response.css('button#download-btn ::attr(onclick)').get()
        infringing = separa(inf, "'", 1)
        
        for tb in response.css('td.column-title ::text'):
            titulo = tb.get()
            print('\n*****************DATOS*****************')
            print('infringing: ' + infringing)
            print('referer: ' + response.meta['referer'])
            print('titulo: ' + titulo)
            print('fecha: ' + response.meta['fecha'])
            print('cantante: ' + response.meta['cantante'])
            print('album: ' + response.meta['album'])
            print('***************************************\n')
            
            #####INSERTA EN BD#####
            if veri(infringing) == True:
                self.c.inserta_item(titulo, response.meta['cantante'], response.meta['album'],response.meta['referer'], infringing, response.meta['fecha'], self.id_domin)
예제 #2
0
 def __init__(self, name=None, **kwargs):
     #####CREA OBJETO#####
     c = Controler(ModelSQLite(), View())
     #####CREA TABLAS#####
     c.crea_tabla(self.nombre_trelacion)
     #c.crea_tabla(self.nombre_tabla, self.nombre_trelacion)
     if c.existe_id(self.id_domin, self.nombre_trelacion) == False:
         #####TOMA LA FECHA ACTUAL#####
         hoy = date.today().strftime("%d %B, %Y")
         #####INSERTA EN LA TABLA RELACIONAL#####
         c.inserta_item_relacional(self.id_domin, self.start_urls[0], hoy,
                                   self.nombre_trelacion)
예제 #3
0
class alvarosolereterno(scrapy.Spider):
    name = 'alvarosolereterno'
    _num_pagina = 1
    start_urls = ['https://alvarosolereternoagostoalbummp3.wordpress.com/']

    id_domin = 12
    nombre_trelacion = 'dominios'
    #####CREA OBJETO#####
    c = Controler(ModelSQLite(), View())

    def __init__(self, name=None, **kwargs):
        #####CREA TABLA#####
        self.c.crea_tabla(self.nombre_trelacion)
        if self.c.existe_id(self.id_domin, self.nombre_trelacion) == False:
            #####TOMA LA FECHA ACTUAL#####
            hoy = date.today().strftime("%d %B, %Y")
            #####INSERTA EN LA TABLA RELACIONAL#####
            self.c.inserta_item_relacional(self.id_domin, self.start_urls[0],
                                           hoy, self.nombre_trelacion)

    def parse(self, response):
        #####COMENTARIOS#####
        print('\n########Pagina ' + str(self._num_pagina) + '########')
        referer = response.css('figure > a ::attr(href)').get()
        yield scrapy.Request(referer, callback=self.parse_attr)

    def parse_attr(self, response):
        Referer = response.url
        Artista = response.xpath(
            '/html/body/div/div[2]/div/div[2]/span[2]/text()').extract_first()
        Album = response.xpath(
            '/html/body/div/div[2]/div/div[2]/span[4]/text()').extract_first()
        Fecha = response.xpath(
            '/html/body/div/div[2]/div/div[2]/span[6]/text()').extract_first()
        Infringing = response.css(
            'div#download-btn-div :nth-child(4) ::attr(onclick)').get()
        Infringing = separa(Infringing, '"', 1)

        for tr in response.css('tbody > tr :nth-child(1)'):
            Cancion = tr.css('::text').get()
            #####IMPRIME INFORMACIÓN#####
            imprime_datos(Cancion, Fecha, Artista, Album, Referer, Infringing)
            #####INSERTA EN BD#####
            if self.c.existe_inf(Infringing, self.id_domin) == False:
                if veri(Infringing) == True:
                    self.c.inserta_item(Cancion, Artista, Album, Referer,
                                        Infringing, Fecha, self.id_domin)
예제 #4
0
    def parse(self, response):
        #####VARIABLE#####
        te_item = SpidersItem()
        c = Controler(ModelSQLite(), View())

        #####COMENTARIOS#####
        print('\n########Pagina ' + str(self._num_pagina) + '########')

        #####HACE UN LOOP POR PÁGINA EN BÚSCA DE LOS DATOS#####
        for art in response.css('article.post.excerpt'):
            #####IMPRIME LOS RESULTADOS####
            yield scrapy.Request(art.css('a ::attr(href)').get(),
                                 callback=self.parse_attr,
                                 meta={
                                     'item': te_item,
                                     'controler': c
                                 })
            #break
        print('')

        self._num_pagina += 1

        for next_page in response.css('a.next.page-numbers'):
            yield response.follow(next_page, self.parse)
예제 #5
0
from datetime import date
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from verifica_link import veri, separa_titulo, separa, strip_spaces, imprime_datos
from controlador_vista import ModelSQLite, View, Controler

name = 'softarchive'
_num_pagina = 1
start_urls = ['https://softarchive.unblocked.ltda/music/']

id_domin = 13
nombre_trelacion = 'dominios'
#####CREA OBJETO#####
c = Controler(ModelSQLite(), View())

#####CREA TABLA#####
c.crea_tabla(nombre_trelacion)
if c.existe_id(id_domin, nombre_trelacion) == False:
#####TOMA LA FECHA ACTUAL#####
    hoy = date.today().strftime("%d %B, %Y")
#####INSERTA EN LA TABLA RELACIONAL#####
    c.inserta_item_relacional(id_domin, start_urls[0], hoy, nombre_trelacion)

#####COMENTARIOS#####
print('\n########Pagina ' + str(_num_pagina) + '########')
#####ABRE NAVEGADOR SELENIUM#####
driver = webdriver.Chrome('C:\\Users\\APDIF\\Desktop\\chromedriver.exe')
driver.get(start_urls[0])
#####ESPERA A QUE CARGUE LA PÁGINA#####
예제 #6
0
class bjholver10(scrapy.Spider):
    name = 'bjholver10'
    _num_pagina = 1
    start_urls = ['https://bjholver10.blogspot.com/2019/07/descarga-tu-musica-y-regueton-espero.html']
    
    id_domin = 8
    nombre_trelacion = 'dominios'
    #####CREA OBJETO#####
    c = Controler(ModelSQLite(), View())
    
    def __init__(self, name=None, **kwargs):
        #####CREA TABLA#####
        self.c.crea_tabla(self.nombre_trelacion)
        if self.c.existe_id(self.id_domin, self.nombre_trelacion) == False:
        #####TOMA LA FECHA ACTUAL#####
            hoy = date.today().strftime("%d %B, %Y")
        #####INSERTA EN LA TABLA RELACIONAL#####
            #id_trelacion = c.ultimo_id(self.nombre_trelacion)
            self.c.inserta_item_relacional(self.id_domin, self.start_urls[0], hoy, self.nombre_trelacion)
                 
            
    def parse(self, response):
        titulo = []
        cantante = []
        album = []
        referer = []
        infringing = []
        fecha = date.today().strftime("%B %d, %Y")
        #####COMENTARIOS#####
        print('\n########Pagina ' + str(self._num_pagina) + '########')
        #prueba = response.css("[style = 'text-align: center; outline: rgb(33, 198, 243) none 0px;'] > span").get()
        for span in response.css('div#post-body-5669324029259817671 > div > div'):
            text = span.css('span ::text').get()
            #print(str(text))
            if text is not None:
                if text != 'DESCARGAR' and text[0] != '0':
                    titulo.append(text)
                    can, alb = separa_titulo(titulo[-1], '-')
                    if can == '-':
                        can, alb = separa_titulo(titulo[-1], '–')
                    cantante.append(can)
                    album.append(alb)
                    #print('agrega titulo: ' + titulo[-1])
                    #print('agrega cantante: ' + cantante[-1])
                    #print('agrega album: ' + album[-1])
                text_des = span.css('span > a ::text').get()
                text_des1 = span.css('a ::text').get()
                if text_des == 'DESCARGAR' or text_des1 == 'DESCARGAR':
                    #print(str(span.css('span > a ::attr(href)').get()))
                    if span.css('span > a ::attr(href)').get() is not None:
                        referer.append(str(span.css('span > a ::attr(href)').get()))
                    elif span.css('a ::attr(href)').get() is not None:
                        referer.append(str(span.css('a ::attr(href)').get()))
                    if referer is not None:
                        infringing.append(self.get_inf(referer[-1]))
                    #print('agrega referer: ' + referer[-1])
                    #print('agrega infringing: ' + infringing[-1])
                    
        self.get_datos(titulo, fecha, cantante, album, referer, infringing)
        
        
    def get_datos(self, titulo, fecha, cantante, album, referer, infringing):
        #print('LEN: ' + str(len(titulo)))
        #print('LEN: ' + str(len(infringing)))
        #print('LEN: ' + str(len(referer)))
        #print('LEN: ' + str(len(cantante)))
        #print('LEN: ' + str(len(album)))
        #print('titulo: ' + titulo[-1])
        for i in range(len(infringing)):
            print('\n*****************DATOS*****************')
            print('infringing: ' + infringing[i])
            print('referer: ' + referer[i])
            print('titulo: ' + titulo[i])
            print('fecha: ' + fecha)
            print('cantante: ' + cantante[i])
            print('album: ' + album[i])
            print('***************************************\n')
            #####INSERTA EN BD#####
            if veri(infringing[i]) == True:
                if self.c.existe_inf(infringing[i], self.id_domin) == False:
                    self.c.inserta_item(titulo[i], cantante[i], album[i], referer[i], infringing[i], fecha, self.id_domin)
            
    
    def get_inf(self, url):
        response = requests.get(url)
        return str(response.request.url)
예제 #7
0
class produccionesortega(scrapy.Spider):
    name = 'produccionesortega'
    _num_pagina = 1
    start_urls = ['http://produccionesortega507.com']
    
    id_domin = 6
    nombre_trelacion = 'dominios'
    #####CREA OBJETO#####
    c = Controler(ModelSQLite(), View())
    
    def __init__(self, name=None, **kwargs):
        #####CREA TABLA#####
        self.c.crea_tabla(self.nombre_trelacion)
        if self.c.existe_id(self.id_domin, self.nombre_trelacion) == False:
        #####TOMA LA FECHA ACTUAL#####
            hoy = date.today().strftime("%d %B, %Y")
        #####INSERTA EN LA TABLA RELACIONAL#####
            #id_trelacion = c.ultimo_id(self.nombre_trelacion)
            self.c.inserta_item_relacional(self.id_domin, self.start_urls[0], hoy, self.nombre_trelacion)
       
            
            
    def parse(self, response):
        id = '0'
        #####COMENTARIOS#####
        print('\n########Pagina ' + str(self._num_pagina) + '########')
        for art in response.xpath('//*[@id="content"]/div[1]/article'):
            band = True
            titulo = art.css(' h2 > a ::text').get()
            fecha = art.css('p > span > a ::text').get()
            album, cantante = separa_titulo(titulo, '-')
            referer = art.css('div > div.post-entry-content > a ::attr(href)').get()
            id = self.get_id(referer,'/', 3)
            infringing = self.get_infr(id)
            if referer is None:
                referer = art.css('div > div > p > strong > a ::attr(href)').get()
                if referer is None:
                    #print('PATH: ' + str(art.xpath('//div/div/p[2]/a').extract()))
                    #print('A: ' + str(art.css('div.post-entry-content').get()))
                    for p in art.css('div.post-entry-content > strong > span > span > a') or art.css('div.post-entry-content > p > a'):
                        band = False
                        #print ('A: ' + str(art.css('div.post-entry-content').get()))
                        referer = p.css('::attr(href)').get()
                        id = self.get_id(referer,'/', 3)
                        infringing = self.get_infr(id)
                        #print('REF: ' + referer)
                        if self.comprueba_refer(referer, 'open') == True:
                            r = art.css('div.post-entry-content > p')
                            #print('A: ' + str(art.css('div.post-entry-content > p > strong').get()))
                            if r.css('strong') is not None:
                                r = r.css('strong > span')
                            referer = r.css('a ::attr(href)').get()
                            id = self.get_id(referer,'/', 3)
                            infringing = self.get_infr(id)
                            #####INSERTA EN BD#####
                            if veri(infringing) == True:
                                if self.c.existe_inf(infringing, self.id_domin) == False:
                                    self.c.inserta_item(titulo, cantante, album, referer, infringing, fecha, self.id_domin)
                            
                        else:
                            id = self.get_id(referer,'/', 3)
                            infringing = self.get_infr(id)
                        self.imprime_datos(titulo, fecha, cantante, album, referer, infringing)
                else:
                    id = self.get_id(referer,'/', 3)
                    infringing = self.get_infr(id)
            else:
                if self.comprueba_refer(referer, '?') == True:
                    infringing = self.get_Mega(referer)
                    
            if band == True:
                #####INSERTA EN BD#####
                if veri(infringing) == True:
                    if self.c.existe_inf(infringing, self.id_domin) == False:
                        self.c.inserta_item(titulo, cantante, album, referer, infringing, fecha, self.id_domin)
    
            self.imprime_datos(titulo, fecha, cantante, album, referer, infringing)
            #referer = None

        self._num_pagina+=1
        try:
            next_page = response.css('a.next.page-numbers ::attr(href)').get()
            if next_page is not None:
                yield response.follow(next_page, callback= self.parse)
        except:
             print('Hubo un problema al abrir la página siguiente')
        
    
    def comprueba_refer(self, ref, cad):
        if ref.find(cad) != -1:
            return True
        else:
            return False
    
    
    def get_Mega(self,ref):
        driver = abre_navegador()
        driver.get(ref)
        time.sleep(8)
        return driver.current_url
    
    
    def imprime_datos(self, titulo, fecha, cantante, album, referer, infringing):
        #####IMPRIME INFORMACIÓN#####
            print('\n*****************DATOS*****************')
            print('infringing: ' + infringing)
            print('referer: ' + str(referer))
            print('titulo: ' + titulo)
            print('fecha: ' + fecha)
            print('cantante: ' + cantante)
            print('album: ' + album)
            print('***************************************\n')
            
    def get_id(self, id, separador, pos):
        if id is not None:
            n_id = id.split(separador)
            return str(n_id[pos])
        else:
            return ''
    
    def get_infr(self, id):
        if id is not None or id != '0':
            response = requests.get('https://musica.produccionesortega507.com/d.php?id=' + id , stream=True)
            #print (response.headers)
            return str(response.request.url)
        else:
            return ""
예제 #8
0
class lvumusic(scrapy.Spider):
    name = 'lvumusic'
    _num_pagina = 1
    start_urls = ['https://www.lvumusic.net']

    id_domin = 7
    nombre_trelacion = 'dominios'
    #####CREA OBJETO#####
    c = Controler(ModelSQLite(), View())

    def __init__(self, name=None, **kwargs):
        #####CREA TABLA#####
        self.c.crea_tabla(self.nombre_trelacion)
        if self.c.existe_id(self.id_domin, self.nombre_trelacion) == False:
            #####TOMA LA FECHA ACTUAL#####
            hoy = date.today().strftime("%d %B, %Y")
            #####INSERTA EN LA TABLA RELACIONAL#####
            #id_trelacion = c.ultimo_id(self.nombre_trelacion)
            self.c.inserta_item_relacional(self.id_domin, self.start_urls[0],
                                           hoy, self.nombre_trelacion)

    def parse(self, response):
        #####COMENTARIOS#####
        print('\n########Pagina ' + str(self._num_pagina) + '########')
        for art in response.css('div.article-container > article'):
            href = art.css('div.featured-image > a ::attr(href)').get()
            titulo = art.css('div.featured-image > a ::attr(title)').get()
            cantante, album = separa_titulo(titulo, '–')
            fecha = art.css(
                'div.below-entry-meta > span > a > time ::text').get()
            yield scrapy.Request(href,
                                 callback=self.parse_attr,
                                 meta={
                                     'fecha': fecha,
                                     'titulo': titulo,
                                     'cantante': cantante,
                                     'album': album
                                 })
            #break
        self._num_pagina += 1
        try:
            next_page = response.css('li.previous > a ::attr(href)').get()
            if next_page is not None:
                yield response.follow(next_page, callback=self.parse)
        except:
            print('Hubo un problema al abrir la página siguiente')

    def parse_attr(self, response):
        href = response.css(
            'div.entry-content.clearfix > center > a ::attr(href)').get()
        yield scrapy.Request(href,
                             callback=self.parse_attr2,
                             meta={
                                 'fecha': response.meta['fecha'],
                                 'titulo': response.meta['titulo'],
                                 'cantante': response.meta['cantante'],
                                 'album': response.meta['album']
                             })

    def parse_attr2(self, response):
        referer = response.url
        infringing = response.css(
            'div.post-body.entry-content > center > table > tbody > tr > td > center > a ::attr(href)'
        ).get()
        imprime_datos(response.meta['titulo'], response.meta['fecha'],
                      response.meta['cantante'], response.meta['album'],
                      referer, infringing)
        #####INSERTA EN BD#####
        if veri(infringing) == True:
            if self.c.existe_inf(infringing, self.id_domin) == False:
                self.c.inserta_item(response.meta['titulo'],
                                    response.meta['cantante'],
                                    response.meta['album'], referer,
                                    infringing, response.meta['fecha'],
                                    self.id_domin)
예제 #9
0
    Does the url contain a downloadable resource
    """
    try:
        h = requests.head(url, allow_redirects=True)
        header = h.headers
        content_type = header.get('content-type')
    except:
        return False
    if 'text' in content_type.lower():
        return False
    if 'html' in content_type.lower():
        return False
    return True


c = Controler(ModelSQLite(), View())
Artistas = c.get_artista("itunes_artist")
for art in Artistas:
    search_word = quote(art[0] + ' descarga directa lang:es')
    #print(art[0])
    #print(search_word)
    url = r'https://twitter.com/search?q=' + str(
        search_word) + '&src=typed_query'
    driver = webdriver.Chrome('C:\\Users\\APDIF\\Desktop\\chromedriver.exe')
    driver
    driver.get(url)
    try:
        driver.find_element_by_css_selector(
            "input.text-input.email-input.js-signin-email").send_keys(
                '*****@*****.**')
        driver.find_element_by_name("session[password]").send_keys('$Apd1f')
예제 #10
0
class lamusicamp3(scrapy.Spider):
    name = 'lamusicamp3'
    _num_pagina = 1
    start_urls = ['https://lamusicamp3.com/']

    id_domin = 9
    nombre_trelacion = 'dominios'
    #####CREA OBJETO#####
    c = Controler(ModelSQLite(), View())

    def __init__(self, name=None, **kwargs):
        #####CREA TABLA#####
        self.c.crea_tabla(self.nombre_trelacion)
        if self.c.existe_id(self.id_domin, self.nombre_trelacion) == False:
            #####TOMA LA FECHA ACTUAL#####
            hoy = date.today().strftime("%d %B, %Y")
            #####INSERTA EN LA TABLA RELACIONAL#####
            #id_trelacion = c.ultimo_id(self.nombre_trelacion)
            self.c.inserta_item_relacional(self.id_domin, self.start_urls[0],
                                           hoy, self.nombre_trelacion)

    def parse(self, response):
        #####COMENTARIOS#####
        print('\n########Pagina ' + str(self._num_pagina) + '########')
        for a in response.xpath('/html/body/div[1]/a'):
            try:
                titu = a.css('::attr(title)').get()
                if titu is not None and titu != 'Descargar' and titu != 'Ak47Full' and titu != 'iPauta' and titu != 'ElGenero' and titu != 'FlowHot':
                    ref = a.css('::attr(href)').get()
                    hoy = date.today().strftime("%d %B, %Y")
                    cantante, album = separa_titulo(titu, '–')
                    yield scrapy.Request(ref,
                                         callback=self.parse_attr,
                                         meta={
                                             'referer': ref,
                                             'fecha': hoy,
                                             'titulo': titu,
                                             'cantante': cantante,
                                             'album': album
                                         })
            except:
                pass
        self._num_pagina += 1
        try:
            next_page = response.css('a.nextpostslink ::attr(href)').get()
            if next_page is not None:
                yield response.follow(next_page, callback=self.parse)
        except:
            print('Hubo un problema al abrir la página siguiente')

    def parse_attr(self, response):
        if response.css('a.btn-dl'):
            infringing = response.css('a.btn-dl ::attr(href)').get()
            imprime_datos(response.meta['titulo'], response.meta['fecha'],
                          response.meta['cantante'], response.meta['album'],
                          response.meta['referer'], infringing)
            #####INSERTA EN BD#####
            if veri(infringing) == True:
                if self.c.existe_inf(infringing, self.id_domin) == False:
                    self.c.inserta_item(response.meta['titulo'],
                                        response.meta['cantante'],
                                        response.meta['album'],
                                        response.meta['referer'], infringing,
                                        response.meta['fecha'], self.id_domin)
예제 #11
0
class djmixtico(scrapy.Spider):
    name = 'djmixtico'
    _num_pagina = 1
    start_urls = ['https://djmixtico.blogia.com/']

    id_domin = 12
    nombre_trelacion = 'dominios'
    #####CREA OBJETO#####
    c = Controler(ModelSQLite(), View())

    def __init__(self, name=None, **kwargs):
        #####CREA TABLA#####
        self.c.crea_tabla(self.nombre_trelacion)
        if self.c.existe_id(self.id_domin, self.nombre_trelacion) == False:
            #####TOMA LA FECHA ACTUAL#####
            hoy = date.today().strftime("%d %B, %Y")
            #####INSERTA EN LA TABLA RELACIONAL#####
            self.c.inserta_item_relacional(self.id_domin, self.start_urls[0],
                                           hoy, self.nombre_trelacion)

    def parse(self, response):
        #####COMENTARIOS#####
        print('\n########Pagina ' + str(self._num_pagina) + '########')

        for a in response.css('h2 > a'):
            ref = a.css('::attr(href)').get()
            #####LLAMA AL REFERER#####
            yield scrapy.Request(ref,
                                 callback=self.parse_attr,
                                 meta={'referer': ref})

        self._num_pagina += 1
        try:
            next_page = response.xpath(
                '/html/body/main/nav[2]/ul/li[2]/a/@href').get()
            if next_page is None:
                next_page = response.xpath(
                    '/html/body/main/nav/ul/li[2]/a/@href').get()
            #print('NEXT PAGE: ' + str(next_page))
            if next_page is not None:
                yield response.follow(next_page, callback=self.parse)
        except:
            print('Hubo un problema al abrir la página siguiente')

    def parse_attr(self, response):
        titulo = response.css('h1 > a ::text').get()
        cantante, album = separa_titulo(titulo, '-')
        fecha = response.css('time > a ::text').get()
        fecha = strip_spaces(fecha)
        fecha = separa(fecha, '-', 0)
        infringing = response.css(
            'div.post__content > p > a ::attr(href)').get()
        try:
            if infringing.find('images') > 0:
                infringing = response.xpath(
                    '//*[@id="post"]/div[2]/p/a[2]/@href').get()
            if infringing is not None or infringing.find('megaupload') > 0:
                if veri(infringing) == True:
                    imprime_datos(titulo, fecha, cantante, album,
                                  response.meta['referer'], infringing)
                    if self.c.existe_inf(infringing, self.id_domin) == False:
                        self.c.inserta_item(titulo, cantante, album,
                                            response.meta['referer'],
                                            infringing, fecha, self.id_domin)
        except:
            pass
예제 #12
0
class ngleakers(scrapy.Spider):
    name = 'ngleakers'
    _num_pagina = 1
    start_urls = ['http://ngleakers.com/']

    id_domin = 4
    nombre_trelacion = 'dominios'
    #####CREA OBJETO#####
    c = Controler(ModelSQLite(), View())

    def __init__(self, name=None, **kwargs):
        #####CREA TABLA#####
        self.c.crea_tabla(self.nombre_trelacion)
        if self.c.existe_id(self.id_domin, self.nombre_trelacion) == False:
            #####TOMA LA FECHA ACTUAL#####
            hoy = date.today().strftime("%d %B, %Y")
            #####INSERTA EN LA TABLA RELACIONAL#####
            #id_trelacion = c.ultimo_id(self.nombre_trelacion)
            self.c.inserta_item_relacional(self.id_domin, self.start_urls[0],
                                           hoy, self.nombre_trelacion)

    def parse(self, response):
        #####COMENTARIOS#####
        print('\n########Pagina ' + str(self._num_pagina) + '########')

        for art in response.css('div#main-content > article'):
            titulo = art.css('a ::attr(title)').get()
            referer = art.css('a ::attr(href)').get()
            fecha = art.css('span.mh-meta-date updated ::text').get()
            cantante, album = separa_titulo(titulo, '–')

            #####LLAMA AL REFERER#####
            yield scrapy.Request(referer,
                                 callback=self.parse_attr,
                                 meta={
                                     'fecha': fecha,
                                     'referer': referer,
                                     'titulo': titulo,
                                     'cantante': cantante,
                                     'album': album
                                 })
            #break
        self._num_pagina += 1
        try:
            next_page = response.css('div.nav-previous > a ::attr(href)').get()
            #print('PAGINA SIGUIENTE:' + next_page)
            if next_page is not None:
                yield response.follow(next_page, callback=self.parse)
        except:
            print('Hubo un problema al abrir la página siguiente')

    def parse_attr(self, response):
        infringing = response.css('h3 > a ::attr(href)').get()

        print('\n*****************DATOS*****************')
        print('infringing: ' + infringing)
        print('referer: ' + response.meta['referer'])
        print('titulo: ' + response.meta['titulo'])
        print('fecha: ' + str(response.meta['fecha']))
        print('cantante: ' + response.meta['cantante'])
        print('album: ' + response.meta['album'])
        print('***************************************\n')

        #####INSERTA EN BD#####
        if veri(infringing) == True:
            if self.c.existe_inf(infringing, self.id_domin) == False:
                self.c.inserta_item(response.meta['titulo'],
                                    response.meta['cantante'],
                                    response.meta['album'],
                                    response.meta['referer'], infringing,
                                    response.meta['fecha'], self.id_domin)
예제 #13
0
class de_album(scrapy.Spider):
    name = 'de-album'
    _num_pagina = 1
    start_urls = ['https://de-album.blogspot.com/']

    id_domin = 11
    nombre_trelacion = 'dominios'
    #####CREA OBJETO#####
    c = Controler(ModelSQLite(), View())

    def __init__(self, name=None, **kwargs):
        #####CREA TABLA#####
        self.c.crea_tabla(self.nombre_trelacion)
        if self.c.existe_id(self.id_domin, self.nombre_trelacion) == False:
            #####TOMA LA FECHA ACTUAL#####
            hoy = date.today().strftime("%d %B, %Y")
            #####INSERTA EN LA TABLA RELACIONAL#####
            self.c.inserta_item_relacional(self.id_domin, self.start_urls[0],
                                           hoy, self.nombre_trelacion)

    def parse(self, response):
        #####COMENTARIOS#####
        print('\n########Pagina ' + str(self._num_pagina) + '########')

        for h3 in response.css('h3.post-title') or response.css(
                'h3.post-title.entry-title'):
            #####RECOLECTA LOS DATOS DE LA PÁGINA#####
            referer = h3.css('a ::attr(href)').get()
            titulo = h3.css('a ::text').get()
            #####SEPARA CANTANTE Y ALBUM#####
            cantante, album = separa_titulo(titulo, '-')
            #####LLAMA AL REFERER#####
            yield scrapy.Request(referer,
                                 callback=self.parse_attr,
                                 meta={
                                     'referer': referer,
                                     'titulo': titulo,
                                     'cantante': cantante,
                                     'album': album
                                 })

        self._num_pagina += 1
        try:
            next_page = response.css(
                'a.blog-pager-older-link.flat-button.ripple ::attr(href)').get(
                )
            if next_page is not None:
                yield response.follow(next_page, callback=self.parse)
        except:
            print('Hubo un problema al abrir la página siguiente')

    def parse_attr(self, response):
        #####TOMA LA FECHA#####
        fecha = response.css('time.published ::text').get().strip()

        #####BÚSCA LA PALABRA DOWNLOAD#####
        link = response.xpath('//*/div[28]/b/span/a/@href').extract_first()
        if link is None:
            link = response.css('div > b > span > a ::attr(href)').get()
        if link is None:
            link = response.xpath(
                '//*/div[2]/div/div[13]/a/@href').extract_first()

        prev_inf = link
        #####IMPRIME INFORMACIÓN#####
        imprime_datos(response.meta['titulo'], fecha,
                      response.meta['cantante'], response.meta['album'],
                      response.meta['referer'], prev_inf)
        #####INSERTA EN BD#####
        self.inserta_BD(response, fecha, prev_inf)
        #####LLAMA AL REFERER#####
        infringing = self.Abre_pag(prev_inf)
        imprime_datos(response.meta['titulo'], fecha,
                      response.meta['cantante'], response.meta['album'],
                      response.meta['referer'], infringing)
        #####INSERTA EN BD#####
        self.inserta_BD(response, fecha, infringing)

    def inserta_BD(self, response, fecha, inf):
        if self.c.existe_inf(inf, self.id_domin) == False:
            if veri(inf) == True:
                self.c.inserta_item(response.meta['titulo'],
                                    response.meta['cantante'],
                                    response.meta['album'],
                                    response.meta['referer'], inf, fecha,
                                    self.id_domin)

    def Abre_pag(self, url):
        #####ABRE NAVEGADOR#####
        driver = webdriver.Chrome(
            'C:\\Users\\APDIF\\Desktop\\chromedriver.exe')
        driver.get(url)
        time.sleep(1)
        #####HACE CLICK EN EL BOTON#####
        WebDriverWait(driver, 10).until(
            EC.element_to_be_clickable(
                (By.CSS_SELECTOR, "button#btn-main"))).click()
        time.sleep(2)
        driver.switch_to.window(window_name=driver.window_handles[1])

        #####HACE CLICK EN EL BOTON#####
        try:
            WebDriverWait(driver, 10).until(
                EC.element_to_be_clickable(
                    (By.CSS_SELECTOR, "button#btn-main"))).click()
        except:
            pass

        element = driver.find_element_by_xpath("/html")
        #####ABRE LOS POP UPS#####
        for i in range(10):
            ActionChains(driver).move_to_element(element).click().perform()
            time.sleep(3)
            driver.switch_to.window(window_name=driver.window_handles[1])

        #####HACE CLICK EN EL BOTON#####
        driver.switch_to.window(window_name=driver.window_handles[1])
        time.sleep(10)
        element = driver.find_element_by_css_selector("button#btn-main")
        ActionChains(driver).move_to_element(element).click().perform()
        time.sleep(3)
        #####TOMA EL LINK MEGA#####
        url = driver.current_url
        #print('URL1: ' + url)
        driver.quit()
        return url
예제 #14
0
class mynewhits(scrapy.Spider):
    name = 'mynewhits'
    _num_pagina = 1
    start_urls = ['http://mynewhits.blogspot.com/']
    
    id_domin = 10
    nombre_trelacion = 'dominios'
    #####CREA OBJETO#####
    c = Controler(ModelSQLite(), View())
    
    
    def __init__(self, name=None, **kwargs):
        #####CREA TABLA#####
        self.c.crea_tabla(self.nombre_trelacion)
        if self.c.existe_id(self.id_domin, self.nombre_trelacion) == False:
        #####TOMA LA FECHA ACTUAL#####
            hoy = date.today().strftime("%d %B, %Y")
        #####INSERTA EN LA TABLA RELACIONAL#####
            self.c.inserta_item_relacional(self.id_domin, self.start_urls[0], hoy, self.nombre_trelacion)
            
            
    def parse(self, response):
        #####COMENTARIOS#####
        print('\n########Pagina ' + str(self._num_pagina) + '########')
        for div in response.css('div.date-posts > div'):
            for a in div.css('article > div > h2 > a'):
               titulo = a.css('::attr(title)').get()
               href = a.css('::attr(href)').get()
               cantante, album = self.separa_titulo(titulo, '-')
               yield scrapy.Request(href, callback= self.parse_attr, meta= {'referer': href, 'titulo': titulo, 'cantante': cantante, 'album': album})
               #break
            #break
        self._num_pagina+=1
        try:
            driver = webdriver.Chrome('C:\\Users\\APDIF\\Desktop\\chromedriver.exe')
            #print('URL:' + str(response.url))
            time.sleep(1)
            driver.get(response.url)
            driver.find_element_by_css_selector('div.pagenavi :last-child').click()
            next_page = driver.current_url
            #print('PAGINA SIG: ' + str(next_page))
            #time.sleep(5)
            if next_page is not None:
                driver.close()
                yield response.follow(next_page, callback= self.parse)
                return
        except:
             print('Hubo un problema al abrir la página siguiente')
        
    
    def parse_attr(self, response):
        fecha = response.css('div.post-body.entry-content > div > div.post-info-icon.tanggal > span ::text').get().strip()
        prev_inf = response.xpath('//*[@class="post-body entry-content"]/div[2]/div[3]/a/@href').get()
        infringing = open_adfly(prev_inf,'span[id*="skip_button"]')
        imprime_datos(response.meta['titulo'], fecha, response.meta['cantante'], response.meta['album'], response.meta['referer'], infringing)
        #####INSERTA EN BD#####
        if self.c.existe_inf(infringing, self.id_domin) == False:
            if infringing is not None:
                #if veri(infringing) == True:
                self.c.inserta_item(response.meta['titulo'], response.meta['cantante'], response.meta['album'], response.meta['referer'], infringing, fecha, self.id_domin)
        #####INSERTA EN BD#####
        if self.c.existe_inf(prev_inf, self.id_domin) == False:
            #if veri(prev_inf) == True:
            self.c.inserta_item(response.meta['titulo'], response.meta['cantante'], response.meta['album'], response.meta['referer'], prev_inf, fecha, self.id_domin)
        
        
    def separa_titulo(self, titulo, separador):
        t = titulo.split(separador)
        cantante, album = t[0], t[1]
        return cantante,album
예제 #15
0
class realmmusik(scrapy.Spider):
    name = 'realm-musik'
    _num_pagina = 1
    start_urls = ['https://realm-musik.blogspot.com/']
    
    id_domin = 3
    nombre_trelacion = 'dominios'
    #####CREA OBJETO#####
    c = Controler(ModelSQLite(), View())
    
    
    def __init__(self, name=None, **kwargs):
        #####CREA TABLA#####
        self.c.crea_tabla(self.nombre_trelacion)
        if self.c.existe_id(self.id_domin, self.nombre_trelacion) == False:
        #####TOMA LA FECHA ACTUAL#####
            hoy = date.today().strftime("%d %B, %Y")
        #####INSERTA EN LA TABLA RELACIONAL#####
            #id_trelacion = c.ultimo_id(self.nombre_trelacion)
            self.c.inserta_item_relacional(self.id_domin, self.start_urls[0], hoy, self.nombre_trelacion)
            
            
    def parse(self, response):
        link_inf = []
        
        #####COMENTARIOS#####
        print('\n########Pagina ' + str(self._num_pagina) + '########')
        
        ids = response.xpath('//*[@id="Blog1"]/div/div/div/div/div/meta[3]/@content').extract()
        
        
        for i in range(len(ids)):
            link_inf.append(str(response.xpath('//*[@id="post-body-'+ ids[i]+'"]/div[2]/a/@href').extract_first()))
            print('\nID: ' + str(link_inf[-1]))
        
        #####HACE UN LOOP POR PÁGINA EN BÚSCA DE LOS DATOS#####
        for div in response.css('div.blog-posts.hfeed'):
            for dd in div.css('div.date-outer'):
                fecha = dd.css('span ::text').get()
                i = 0
                for d in dd.css('div.post.hentry'):
                    referer = d.css('h3.post-title.entry-title > a ::attr(href)').get()
                    titulo = d.css('h3.post-title.entry-title > a ::text').get()
                    cantante, album = self.separa(titulo)
                    try:
                        yield scrapy.Request(url= link_inf[i], callback= self.parse_attr, meta= {'fecha': fecha, 'referer': referer, 'titulo': titulo, 'cantante': cantante, 'album': album})
                        i += 1
                    except:
                        pass
                    print('\n')
        
        #####PASA A LA SIGUIENTE PAGINA#####
        self._num_pagina+=1
        try:
            next_page = response.css('a.blog-pager-older-link ::attr(href)').get()
            #print('PAGINA SIGUIENTE:' + next_page)
            if next_page is not None:
                yield response.follow(next_page, callback= self.parse)
        except:
            print('Hubo un problema al abrir la página siguiente')
            
            
    
    
    def parse_attr(self, response):
        url = str(response.url)
        link_mega = open_adfly(url, 'skip_bu2tton')
        if link_mega is not None:
            link_mega = 'mega' + self.separaLink(link_mega)
        #return link_mega
            infringing = str(unquote(link_mega))
            print('\n*****************DATOS*****************')
            print('infringing: ' + infringing)
            print('fecha: ' + response.meta['fecha'])
            print('referer: ' + response.meta['referer'])
            print('titulo: '+ response.meta['titulo'])
            print('cantante: '+ response.meta['cantante'])
            print('album: '+ response.meta['album'])
            print('***************************************\n')
        
        #####INSERTA EN BD#####
            if veri(infringing) == True:
                if c.existe_inf(infringing, self.id_domin) == False:
                    self.c.inserta_item(response.meta['titulo'], response.meta['cantante'], response.meta['album'],response.meta['referer'], infringing, response.meta['fecha'], self.id_domin)
    
    
    def separaLink(self, link):
        #####SEPARA CANTANTE Y ALBUM#####
        separa = link.split('mega')
        return separa[1]
        
    
    def separa(self, titulo):
        #####SEPARA CANTANTE Y ALBUM#####
        separa = titulo.split('Link')
        s = separa[0].split('-')
        try:
            cantante, album = s[0], s[1]
        except:
            cantante = '-'
            album = '-'
        return cantante, album