Web Scraping com ChatGPT

Guias, Como fazer, Raspagem, Ago-20-20245 minutos de leitura

O Web scraping é uma ferramenta poderosa para programadores, cientistas de dados, profissionais de marketing digital e muitas outras pessoas que desejam extrair dados valiosos de sítios Web. Se você está procurando elevar sua jornada de raspagem da web, aproveitar os recursos do ChatGPT pode ajudá-lo muito. Este blogue irá guiá-lo através da utilização do ChatGPT para criar scripts de web scraping robustos, eficientes e fiáveis.

Introdução ao ChatGPT

O ChatGPT, desenvolvido pela OpenAI, é um modelo de linguagem de última geração concebido para compreender e gerar texto semelhante ao humano. Aproveita o processamento de linguagem natural (PNL) para ajudar numa variedade de tarefas, desde a criação de conteúdos à assistência à codificação. Com a sua capacidade de compreender o contexto e fornecer sugestões inteligentes, o ChatGPT tornou-se um ativo valioso para programadores e cientistas de dados.

O que é o ChatGpt?

ChatGPT significa "Chat Generative Pre-trained Transformer" (Transformador pré-treinado generativo de conversação). É um tipo de inteligência artificial que pode gerar texto com base na entrada que recebe. Embora seja conhecida pelas suas capacidades de conversação, as suas aplicações vão muito além do simples diálogo.

Utilizações do ChatGpt na recolha de dados da Web

  • Assistência de código: Ajuda para escrever e depurar scripts de raspagem da Web.
  • Recomendações de bibliotecas: Sugerir ferramentas como Beautiful Soup, Scrapy, Selenium...
  • Melhores práticas: Orientações sobre técnicas de raspagem éticas e eficientes.

Limitações do ChatGPT no Web Scraping

  • Contornar medidas de segurança: O ChatGPT não pode ajudar a contornar medidas de segurança como o bloqueio de IP ou outras tecnologias anti-scraping para além dos limites éticos.
  • Recolha de dados em tempo real: ChatGPT não pode interagir com websites em tempo real para recolher dados.
  • Desenvolvimento de ferramentas personalizadas: ChatGPT não pode desenvolver ferramentas de software personalizadas ou frameworks para web scraping.

Exemplo de como utilizar o ChatGpt para recolha de dados da Web

Embora o chat não possa fazer scraping direto de um site, pode certamente inspirar-nos com ideias sobre como abordar o processo de scraping da Web. Além disso, pode fornecer scripts que podemos utilizar nos nossos projectos de Web scraping.

Vamos explorar um exemplo simples. Imaginemos que queremos recolher dados de um sítio Web de publicações de blogues e extrair cada publicação de blogue, armazenando-a num ficheiro csv. As informações que queremos guardar são o título, a descrição e o URL do blogue.

Passo 1 - Compor o prompt do ChatGpt:

Primeiro, precisamos de criar um prompt para o ChatGPT que indique claramente o que precisamos. Neste exemplo, vamos utilizar o site (https://www.scrapethissite.com/pages) para extrair o título, a descrição e o URL de cada blogue. Para instruir o ChatGpt corretamente, precisamos de fornecer os selectores do primeiro blogue. Para isso, clique com o botão direito do rato no elemento e, em seguida, clique em inspecionar

Depois disso, queremos agarrar o seletor Xpath clicando novamente com o botão direito do rato no elemento e, em seguida Copiar e depois Copiar XPath

Deve também aplicar o mesmo às secções de descrição e URL do blogue.

Segue-se a versão final da proposta:

Desenvolver um script Python utilizando a biblioteca "Requests" e "BeautifulSoup" que extrai  mensagensde blogues deste sítio Web: "https://www.scrapethissite.com/pages/"
A informação que precisa de ser extraída é: 
- Título do blogue - XPath: "//*[@id="pages"]/secção/div/div/div/div[1]/h3/a" 
- Descrição do blogue - XPath: "//*[@id="pages"]/section/div/div/div/div[1]/p"- Url do blogue 
- XPath: "//*[@id="pages"]/section/div/div/div/div[1]/h3/a"

No final, o script deve imprimir os resultados e armazená-los num ficheiro csv.

Passo 2 - Configurar o script Python:

Aqui está o script que o ChatGpt produziu:

import requests
from bs4 import BeautifulSoup
import csv
# URL of the website to scrape
url = 'https://www.scrapethissite.com/pages/'
# Send a GET request to the URL
response = requests.get(url)
# Parse the page content using BeautifulSoup
soup = BeautifulSoup(response.text, 'html.parser')
# List to store the scraped data
blogs = []
# Locate the sections containing blog information
# Using the provided XPath details converted to BeautifulSoup format
blog_sections = soup.select('#pages section div div div div')
for section in blog_sections:
   # Extract the blog title
   title_tag = section.select_one('h3 a')
   title = title_tag.text.strip() if title_tag else 'No title'
   # Extract the blog description
   description_tag = section.select_one('p')
   description = description_tag.text.strip() if description_tag else 'No description'
   # Extract the blog URL
   url_tag = section.select_one('h3 a')
   blog_url = url_tag['href'] if url_tag else 'No URL'
   # Append the data to the blogs list
   blogs.append({'Title': title, 'Description': description, 'URL': blog_url})
# Print the extracted information
for blog in blogs:
   print(f"Title: {blog['Title']}\nDescription: {blog['Description']}\nURL: {blog['URL']}\n")
# Save the data to a CSV file
csv_file = 'blogs.csv'
with open(csv_file, mode='w', newline='') as file:
   writer = csv.DictWriter(file, fieldnames=['Title', 'Description', 'URL'])
   writer.writeheader()
   writer.writerows(blogs)
if __name__ == '__main__':
   print(f"Data saved to {csv_file}")

Antes de executar este script, certifique-se de que instalou as bibliotecas 'requests' e 'bs4'.

pip install requests bs4

Segue-se uma breve descrição geral do que este script faz:

  • Bibliotecas de importação: Importapedidos, BeautifulSoup e csv para lidar com pedidos HTTP, analisar HTML e gerir operações de ficheiros CSV.
  • Obter conteúdo de página da Web: Utiliza pedidos para enviar um pedido GET para o URL especificado e recuperar o conteúdo HTML da página.
  • Analisar conteúdo HTML: Analisa o HTML recuperado utilizando o BeautifulSoup para facilitar a extração de dados.
  • Extrair informações do blogue:
    • Título do blogue: Extrai o título de cada publicação do blogue.
    • Descrição do blogue: Extrai a descrição de cada publicação do blogue.
    • URL do blogue: Extrai o URL de cada publicação do blogue.
  • Armazenar dados: Armazena os dados extraídos numa lista de dicionários.
  • Imprimir dados extraídos: Imprime o título, a descrição e o URL de cada post do blogue.
  • Salvar dados em CSV: salva os dados extraídos em um arquivo CSV chamado blogs.csv.

Passo 3 - Testar o guião:

Depois de ter instalado as bibliotecas necessárias, crie um ficheiro Python com o nome que preferir. Em seguida, cole o script no ficheiro e guarde-o.

Depois de executar o script, ele imprimirá os dados de cada blogue e gerará um arquivo CSV chamado "blogs.csv". Este é o seu aspeto:

Conclusão

O ChatGPT é uma ferramenta valiosa para programadores, cientistas de dados e entusiastas da recolha de dados da Web. Ao tirar partido das suas capacidades, pode melhorar os seus scripts de web scraping, aumentar a precisão e reduzir o tempo de desenvolvimento. Quer esteja a extrair dados para análise de mercado, monitorização de redes sociais ou investigação académica, o ChatGPT pode ajudá-lo a atingir os seus objectivos de forma mais eficiente.