0

Receita de Bolo: Como fazer um web scraping utilizando o Python Scrapy com XPath para pegar dados de um site

Vamos ver como utilizar o Python Scrapy para fazer um web scraping em uma página! Para facilitar o desenvolvimento do scraping tem o vídeo no canal (http://bit.ly/2HdKDjT)

 

Atualização do Fedora Linux, instalação do Python e do Scrapy

Atualizar o Fedora Linux:
sudo dnf update -y

Instalar o Python:
sudo dnf install -f python3

Instalar o Scrapy:
pip scrapy

Documentação do Scrapy: https://docs.scrapy.org/en/latest/topics/selectors.html
Página que vamos utilizar Scrapy: https://docs.scrapy.org/en/latest/topics/selectors.html
Página de apoio para testar tags: http://www.testedetag.com/
GitHub: https://bit.ly/3bjbMih
Vídeo: https://www.youtube.com/watch?v=NhZ2uhYpxtg

 

Agora vamos começar!
Abrir o Scrapy com o site desejado:

scrapy shell https://docs.scrapy.org/en/latest/topics/selectors.html

Como para pegar resposta de disponibilidade:
response
Resposta do Scrapy:
<200 https://docs.scrapy.org/en/latest/topics/selectors.html>

Como para pegar a página novamente (caso precise):
request
Resposta do Scrapy:
<GET https://docs.scrapy.org/en/latest/topics/selectors.html>

Como para pegar todo o código da página:
response.text
Resposta do Scrapy: Todo o Código

Como para tag title:
response.selector.xpath(‘//title’)
Resposta do Scrapy: [<Selector xpath=’//title’ data='<title>Selectors — Scrapy 2.0.1 document’>]

Como para pegar tag title e conteúdo:
response.selector.xpath(‘//title’).get()
Resposta do Scrapy: ‘<title>Selectors — Scrapy 2.0.1 documentation</title>’

Como para pegar o conteúdo tag title:
response.selector.xpath(‘//title/text()’).get()
Resposta do Scrapy: ‘Selectors — Scrapy 2.0.1 documentation’

Como para pegar o conteúdo da tag h1:
response.selector.xpath(‘//h1/text()’).get()
Resposta do Scrapy: ‘Selectors’

Como para pegar conteúdo da tag h2:
response.selector.xpath(‘//h2/text()’).get()
Resposta do Scrapy: ‘Using selectors’

Como para pegar conteúdo de todos h2:
response.selector.xpath(‘//h2/text()’).getall()
Resposta do Scrapy: [‘Using selectors’, ‘Working with XPaths’, ‘Built-in Selectors reference’, ‘Examples’]

Como para pegar o terceiro retorno da matriz:
response.selector.xpath(‘//h2/text()’)[2].get()
Resposta do Scrapy: ‘Built-in Selectors reference’
a contagem começa em 0!

Como declarar tittle e h1 como variável:
title = response.selector.xpath(‘//title/text()’).get()
h1 = response.selector.xpath(‘//h1/text()’).get()

Como printar as variáveis Title e H1:
print(title,h1)
Resposta do Scrapy: Selectors — Scrapy 2.0.1 documentation Selectors

Como fazer um for para pegar o conteúdo de todos h2:
conteudo = response.selector.xpath(‘//h2/text()’).getall()
for text in conteudo:
print(text)

Resposta do Scrapy:
Using selectors
Working with XPaths
Built-in Selectors reference
Examples

Antes de digitar print(text) dê um tab!

 

Vídeo:

 

#canaldjobix #fedoralinux #redhatlover #pythonscrapy #webscrapingpython

edurebecca@edurebecca

Leave a Reply