=======================|📚Introdução📚|=====================
Web-Scrapping é o termo para usar um programa para baixar e processar conteúdo da web.
Por exemplo, o Google executa muitos programas de Web-Scrapping para indexar
páginas da Web para seu mecanismo de busca.
Alguns conceitos
-
webbrowser: Vem com python e abre um navegador para uma página específica.
-
requests: Baixa arquivos e páginas da Web da internet.
-
bs4: Analisa o HTML, o formato em que as páginas da Web estão escritas.
-
selenium: Lança e controla um navegador da Web. O módulo de selênio é capaz de preencher formulários e simular cliques do mouse neste navegador.
Quero tentar introduzir dois conceitos e aborda-los nessa live que vai ser o "webbrowser" e o "requests"
Web-Scrapping é basicamente é eu extrair dados de paginas web, conseguindo acessar exatamente o que desejo ,so que no meu codigo em python ,facil ne?
==========================|✨Um pouco do básico✨|============================
Vou começar com o webbrowser
import webbrowser
webbrowser.open('https://www.vagas.com.br/vagas-de-programador-python')
Aqui abrimos a pagina web que desejamos via código python, util ne?
Agora iremos realizar a instalação de uma outra biblioteca que iremos usar durante a criação do código
- Vamos la no windows+R
- Digita cmd
- E digite o comando:pip install requests
Vamos importar a biblioteca "requests" e usar o metodo get
import requests
texto_html = requests.get('https://www.vagas.com.br/vagas-de-programador-python')
print('Status do codigo:', texto_html.status_code)
Os códigos de status das respostas HTTP indicam se uma requisição HTTP foi corretamente concluída. As respostas são agrupadas em cinco classes:
- Respostas de informação (100-199),
- Respostas de sucesso (200-299),
- Redirecionamentos (300-399)
- Erros do cliente (400-499)
- Erros do servidor (500-599).
Iremos utilizar o BeaultifulSoup da biblioteca lxml, com isso teremos de instalar o pacote.
- Windows+R
- Digita cmd
- E digite o comando:pip install lxml
=====================|⚙️Construção do Primeiro código⚙️|======================
from bs4 import BeautifulSoup
import requests
texto_html=requests.get('https://www.vagas.com.br/vagas-de-programador-python?').text
Primeiramente passamos o texto do site para formato lxml para o pythom compreender melhor.
site=BeautifulSoup(texto_html,"lxml")
Procuramos algum < li > com a classe "vaga odd".
emprego=site.find('li',class_="vaga odd")
Como achei vaga odd no inspecionar?
Siga as setinhas abaixo :)
<div class="pesquisaConteudoWrapper">
<section id="pesquisaResultado">
<section class="grupoDeVagas">
<div id="todasVagas">
<li class="vaga odd">
Procuramos o nome da empresa sem as tags html e as habilidades necessárias
nomedaempresa=emprego.find('span',class_='emprVaga').text.replace("","")
habilidades=emprego.find('div',class_="detalhes").text.replace("","")
\n
datadepubli=emprego.find('span',class_="data-publicacao").text.replace("","")
print("Nome da empresa{}" .format(nomedaempresa))
print("Habilidades Necessarias{}".format(habilidades))
print(datadepubli)
Aqui iremos procurar a data de publicação , e imprimir as variaveis nomedaempresa e habilidades.
=====================|⚙️Segundo código⚙️|======================
from bs4 import BeautifulSoup
import requests
texto_html=requests.get('https://www.vagas.com.br/vagas-de-programador-python?').text
site=BeautifulSoup(html_text,"lxml")
Aqui buscamos tudo da tag < li > que tenha classe "vaga odd"
empregos=site.find_all('li',class_="vaga odd")
for emprego in empregos:
Nome da empresa sem as tags html
nomedaempresa=emprego.find('span',class_='emprVaga').text.replace("","")
Habilidades Necessarias
habilidades=emprego.find('div',class_="detalhes").text.replace("","")
Data de publicacao
datadepubli=emprego.find('span',class_="data-publicacao").text.replace("","")
print("Nome da empresa{}" .format(nomedaempresa)
+"Habilidades Necessarias{}".format(habilidades)
+"Data da Publicacao{}".format(datadepubli))
print(" ")
=====================|⚙️Terceiro código explicado⚙️|======================
from bs4 import BeautifulSoup
import requests
Bucar no endereco html
html_text=requests.get('https://www.vagas.com.br/vagas-de-programador-python?').text
Transformar o html em lxml para facilitar a leitura do python
site=BeautifulSoup(html_text,"lxml")
Buscar tudo pagina WEB , a tag li na class vaga odd
empregos=site.find_all('li',class_="vaga odd")
with open ("empregos.txt","w",'encoding='utf-8') as arquivo:
for emprego in empregos:
Nome da empresa sem as tags html
nomedaempresa=emprego.find('span',class_='emprVaga').text.replace("","")
Habilidades Necessárias
habilidades=emprego.find('div',class_="detalhes").text.replace("","")<br />
Data de publicação
datadepubli=emprego.find('span',class_="data-publicacao").text.replace("","")<br />
informacoes={<br />
"Nome da empresa":nomedaempresa+"",
"Habilidades Necessarias":habilidades+"",
"Data da publicacao":datadepubli+"",
}
arquivo.write (str(informacoes)+"\r\n" +"\r\n")
======================================================================
---Dicionário---
Inglês | Português |
---|---|
Requests | solicitação |
Response | resposta |
Get | pegar |
Content | conteudo |
Header | cabeçalho |
html_text | texto html |
find | achar |
write | escrever |