Web Scraping com ChatGPT

Guias, Como fazer, Scraping, 20/08/20245 minutos de leitura

A Web scraping é uma ferramenta poderosa para desenvolvedores, cientistas de dados, profissionais de marketing digital e muitas outras pessoas que desejam extrair dados valiosos de sites. Se você deseja elevar sua jornada na Web scraping , aproveitar os recursos do ChatGPT pode ajudá-lo muito. Este blog o guiará no uso do ChatGPT para criar scripts robustos, eficientes e confiáveis para a Web scraping .

Introdução ao ChatGPT

O ChatGPT, desenvolvido pela OpenAI, é um modelo de linguagem de última geração projetado para entender e gerar texto semelhante ao humano. Ele aproveita o processamento de linguagem natural (NLP) para auxiliar em uma variedade de tarefas, desde a criação de conteúdo até a assistência à codificação. Com sua capacidade de compreender o contexto e fornecer sugestões inteligentes, o ChatGPT se tornou um recurso valioso para desenvolvedores e cientistas de dados.

O que é o ChatGpt?

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

Usos do ChatGpt na Web scraping

  • Assistência ao código: Ajuda para escrever e depurar scripts da Web scraping .
  • Recomendações de bibliotecas: Sugerir ferramentas como Beautiful Soup, Scrapy, Selenium...
  • Práticas recomendadas: Orientação sobre técnicas éticas e eficientes do site scraping .

Limitações do ChatGPT na Web Scraping

  • Como contornar medidas de segurança: O ChatGPT não pode ajudar a contornar medidas de segurança como bloqueio de IP ou outras tecnologias antiscraping além dos limites éticos.
  • Coleta de dados em tempo real: O ChatGPT não pode interagir com sites em tempo real para coletar dados.
  • Desenvolvimento de ferramentas personalizadas: O ChatGPT não pode desenvolver ferramentas ou estruturas de software personalizadas para a web scraping.

Exemplo de como usar o ChatGpt para a Web scraping

Embora o bate-papo não possa scrape diretamente um site, ele certamente pode nos inspirar com ideias sobre como abordar o processo de scraping web. Além disso, ele pode fornecer scripts que podemos utilizar em nossos projetos scraping web.

Vamos explorar um exemplo simples. Imagine que desejamos acessar scrape um site de postagens de blog, extrair cada postagem de blog e armazená-la em um arquivo csv. As informações que queremos salvar são o título, a descrição e o URL do blog.

Etapa 1 - Escreva o prompt do ChatGpt:

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

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

Você também deve aplicar o mesmo às seções de descrição e URL do blog.

Abaixo está a versão final do prompt:

Desenvolva um script Python usando a biblioteca "Requests" e "BeautifulSoup" que extraia  postagensde blog deste site: "https://www.scrapethissite.com/pages/"
As informações que precisam ser extraídas são: 
- Título do blog - XPath: "//*[@id="pages"]/section/div/div/div/div[1]/h3/a" 
- Descrição do blog - XPath: "//*[@id="pages"]/section/div/div/div/div[1]/p"- Url do blog 
- XPath: "//*[@id="pages"]/section/div/div/div/div[1]/h3/a"

No final, o script deve imprimir os resultados e armazená-los em um arquivo csv.

Etapa 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 esse script, verifique se você instalou as bibliotecas "requests" e "bs4".

pip install requests bs4

Aqui está uma breve visão geral do que esse script faz:

  • Bibliotecas de importação: Importasolicitações, BeautifulSoup e csv para lidar com solicitações HTTP, analisar HTML e gerenciar operações de arquivos CSV.
  • Obter conteúdo de página da Web: Usa solicitações para enviar uma solicitação GET ao URL especificado e recuperar o conteúdo HTML da página.
  • Analisar conteúdo HTML: Analisa o HTML recuperado usando o BeautifulSoup para facilitar a extração de dados.
  • Extrair informações do blog:
    • Título do blog: Extrai o título de cada post do blog.
    • Descrição do blog: Extrai a descrição de cada post do blog.
    • URL do blog: Extrai o URL de cada post do blog.
  • Armazenar dados: Armazena os dados extraídos em uma lista de dicionários.
  • Imprimir dados extraídos: Imprime o título, a descrição e o URL de cada post do blog.
  • Salvar dados em CSV: salva os dados extraídos em um arquivo CSV denominado blogs.csv.

Etapa 3 - Teste o script:

Depois de instalar as bibliotecas necessárias, crie um arquivo Python com o nome de sua preferência. Em seguida, cole o script no arquivo e salve-o.

Quando você executar o script, ele imprimirá os dados de cada blog e gerará um arquivo CSV chamado "blogs.csv". Veja como ele se parece:

Conclusão

O ChatGPT é uma ferramenta valiosa para desenvolvedores, cientistas de dados e entusiastas da Web scraping . Ao aproveitar seus recursos, você pode aprimorar seus scripts da Web scraping , melhorar a precisão e reduzir o tempo de desenvolvimento. Quer esteja extraindo dados para análise de mercado, monitoramento de mídia social ou pesquisa acadêmica, o ChatGPT pode ajudá-lo a atingir seus objetivos com mais eficiência.