# -*- coding: utf-8 -*-
import scrapy


class MascNomeSpider(scrapy.Spider):
    name = "masc_nome"
    allowed_domains = ["dicionariodenomesproprios.com.br"]
    start_urls = (
        'http://www.dicionariodenomesproprios.com.br/nomes-masculinos/1/',
    )

    def parse(self, response):
        # Usando o xpath, selecionamos a tag "a"
        # com o atributo class "lista-nome" e pegamos apenas o texto
        # você pode ver isso abaixo
        nomes = response.xpath('//a[@class="lista-nome"]/text()').extract()
        # Outra coisa, assim como o nome sugestivo, a resposta vem do response.
        # Ou seja, é como se o html viesse do response e dele fazemos a query
        # em xpath
        
        # Aqui fazemos um simples for pegando o nome da lista que é 
        # criada e salvamos o nome em um arquivo.
        for nome in nomes:
            print nome.encode("utf-8")
            arq = open("nomes_masculinos.txt", 'a')
            arq.write("%s\n" % nome.encode("utf-8"))
        arq.close()

        # Novamente, pegamos a resposta e verificamos com xpath se existe
        # uma próxima pagina, verifique a tag e o atributo da setinha
        # de proxima pagina no final da pagina do site.
        prox_pagina = response.xpath('//a[@class="step-pag"]/@href').extract()
        URL_proxpag = "http://www.dicionariodenomesproprios.com.br%s" % prox_pagina[len(prox_pagina)-1]
        print "PAGINA >>>> %s" % URL_proxpag
        
        # Aqui falamos, se existir uma proxima pagina, mande para fazer um novo
        # request nessa proxima pagina, passando a URL e o Callback para o parser
        if prox_pagina:
            yield scrapy.Request(url=URL_proxpag, callback=self.parse)