Web Scraping com Python
Neste blog, vamos ler sobre web scraping e sua implementação usando a linguagem de programação Python.
Os usuários devem consultar nossos blogs anteriores sobre PNL para entender melhor os conceitos.
O web scraping é usado sempre que queremos extrair ou copiar grandes quantidades de informações de um site o mais rápido possível, sem ir manualmente a cada site para obter os dados.
A coleta da Web torna essa tarefa mais fácil e rápida.
Aplicações de Web Scraping
Web scraping pode ser usado por vários motivos, mas qual é a necessidade de coletar dados tão grandes de sites, vamos dar uma olhada:
- Algumas empresas usam endereços de e-mail de usuários como meio de marketing. Portanto, eles usam web scraping para coletar ids de e-mail para que possam enviar e-mails em massa.
- Às vezes, a web scraping é feita em sites de mídia social, como o Twitter, para coletar dados e descobrir o que é tendência.
- É feito para reunir os dados de diferentes sites de fóruns de revisão e implementar a análise de sentimento nos mesmos.
- O web scraping também é feito para reunir dados para testar e treinar nossos modelos de aprendizado de máquina. Etc.
No entanto, existem alguns sites que impedem o web scraping. Para saber se um site permite web scraping ou não, tudo o que precisamos fazer é examinar o arquivo ‘robots.txt’ do site.
Precisamos apenas anexar → /robots.txt à URL que queremos extrair .
Como funciona o Web Scraping
Para isso, escolhemos uma URL na qual queremos realizar o scraping. Depois de executar o código, uma solicitação é enviada ao URL. O servidor envia os dados como uma solicitação e nos permite ler a página HTML / XML.
O código então analisa a página, encontra os dados e os extrai.
Neste blog, encontraremos a frequência de palavras em uma página da web usando urllib e BeautifulSoup para extrair texto da página da web. Em seguida, removeremos as palavras irrelevantes dele e, em seguida, traçaremos o gráfico das mesmas.
Beautiful Soup é uma biblioteca Python para extrair dados de arquivos HTML e XML.
Vamos ver como fazer web scraping usando Python:
Começaremos importando todas as bibliotecas necessárias
from bs4 import BeautifulSoup
import urllib.request
import nltk
response = urllib.request.urlopen(‘http://php.net/’)
html = response.read()
soup = BeautifulSoup(html,”html5lib”)
O módulo urllib.request é usado para abrir URLs. O pacote Beautiful Soup é usado para extrair dados de arquivos HTML.
text = soup.get_text(strip=True)
tokens = [t for t in text.split()]
freq = nltk.FreqDist(tokens)
for key,val in freq.items():
print (str(key) + ‘:’ + str(val))
‘soup.get_text’ é usado para obter o texto da página da web e ‘ nltk.FreqDist’ é usado para obter a frequência de cada item do vocabulário no texto.
Traçando o gráfico de frequênciafrequencia. plot ( 20 , cumulativo = False )
No gráfico acima, podemos ver que todas as palavras com suas frequências foram plotadas.
Agora, depois de buscar todas as palavras do site, nosso objetivo é remover as palavras irrelevantes delas. Podemos fazer isso usando a biblioteca ‘stopwords’ da nltk.
nltk.download(‘stopwords’)
from nltk.corpus import stopwords
Removeremos as palavras irrelevantes e imprimiremos todas as palavras com sua respectiva frequência.
text = soup.get_text(strip=True)
tokens = [t for t in text.split()]
clean_tokens = tokens[:]
sr = stopwords.words(‘english’)
for token in tokens:
if token in stopwords.words(‘english’):
clean_tokens.remove(token)
freq = nltk.FreqDist(clean_tokens)
for key,val in freq.items():
print (str(key) + ‘:’ + str(val))
Traçar o gráfico de frequência após remover as palavras irrelevantesfrequencia. plot ( 20 , cumulativo = False )
É assim que fazemos web scraping usando BeautifulSoup. Espero que tenha gostado deste blog. Para qualquer dúvida ou sugestão, deixe-nos um comentário.
Créditos: acadgild
Continue visitando nosso site para mais blogs sobre Ciência de Dados e Análise de Dados.