7.1 06 - Scrapy - Projeto - Crawler - Telelista
7.1 06 - Scrapy - Projeto - Crawler - Telelista
7.1 06 - Scrapy - Projeto - Crawler - Telelista
Nome do estabelecimento:
O nome do estabelecimento está no texto de
uma tag “td” (coluna) cuja classe é
“nome_resultado_ag”.
nomes = response.xpath('//td[@class="nome_resultado_ag"]//a/text()').extract()
In [2]: nomes
Out[2]:
['\nComercial Guifer', '\nSupermercados Mirante', '\nSupermercado Giestas', '\nBar e
Mercearia Meira', '\nSupermercado Schwambach E Tesch', '\nLevi Tesch']
Telefone:
O telefone do estabelecimento está no texto
de uma tag “td” cuja classe é
“text_resultado_ib”.
Particularidades do telefone:
Existem tags “td” cuja classe é
“text_resultado_ib” e não são tags
relacionadas ao telefone.
In [4]: telefones
Out[4]:
Este será o resultado: ['\nTel: (27) 3735-25',
'\n',
'\nTel: (27) 3735-20',
'\n',
'\nTel: (27) 3735-21',
'\n',
Teremos que “limpar” este resultado. '\nTel: (27) 3735-16',
'\n',
'\nTel: (27) 3735-12',
'\n',
'\nTel: (27) 3735-13',
'\n']
In [2]: proxima_pagina
Out[2]: 'https://www.telelistas.net/es/vitoria/supermercados+e+hipermercados?pagina=2'
nome = response.xpath('//h1[contains(@class,"nome_anun")]/text()').extract()
telefones = response.xpath('//div[@id="telInfo"]//span/text()').extract()
imagens = response.xpath('//div[@id="telInfo"]//span//img/@src').extract()
endereco = response.xpath('//input[contains(@id,"enderecoreg")]/@value').extract()
url_desmontada = url.split("/")
self.ramo_atividade = url_desmontada[5]
self.url = url
def start_requests(self):
yield scrapy.Request(url=self.url, callback=self.parse)
Python Web Scraping – Evaldo Wolkers
Scrapy
Projeto Crawler Telelista
Temos dois estilos de URL que serão acessadas pelo
sistema. Um que busca por estado, cidade e tipo:
https://www.telelistas.net/es/afonso+claudio/supermercados+e+hiper
mercados
Executando o sistema:
$ crawl telelista –a url=“URL”
Resultado: