How web scrape with chatgpt python cover

Muitas pessoas acreditam que ferramentas de IA como ChatGPT ou Gemini estão fazendo muito do nosso trabalho, substituindo o esforço humano real e até mesmo mudando a maneira como pensamos e tomamos decisões. Isto levanta frequentemente preocupações sobre o futuro do emprego e da criatividade. Mas será que a IA é realmente uma ameaça superestimada ou é simplesmente um miniassistente que nos ajuda quando usada com equilíbrio?

Veja o raspagem web como exemplo. Tradicionalmente, a construção de raspadores exigia sólidos conhecimentos de codificação, atenção aos detalhes e habilidades de depuração. Com ChatGPT, até mesmo os iniciantes podem gerar scripts de raspagem prontos para uso em segundos, enquanto os profissionais podem economizar horas permitindo que a IA cuide de tarefas repetitivas de codificação. Em vez de substituir os desenvolvedores, a IA funciona como uma poderosa ferramenta de produtividade que reduz o trabalho rotineiro.

Esse tipo de raspagem pode ser útil para pesquisadores que coletam dados, empresas que monitoram concorrentes ou estudantes que estão aprendendo Python. Ao combinar a capacidade do ChatGPT de escrever e explicar código com as bibliotecas de raspagem do Python, qualquer pessoa pode construir raspadores rápidos e eficientes.

As principais ferramentas que você precisa para começar

Antes de começarmos a fazer raspagem web de páginas Amazon usando Python, vamos ter certeza de que nosso ambiente está configurado corretamente. Precisaremos de:

  • Visual Studio Code (ou qualquer outro editor de código) 

Baixe VS Code do site oficial e siga as instruções de instalação do seu sistema operacional. Em seguida, abra-o e instale a extensão Python clicando no ícone quadrado na barra lateral. Abra a pasta onde deseja criar seu projeto selecionando Arquivo – Abrir pasta. Crie um novo arquivo Python para seu script, por exemplo, scraping_gpt_test.py

  • Python e suas bibliotecas (Requests, BeautifulSoup)

Caso você não tenha Python 3.x instalado em seu computador, você pode baixá-lo em https://www.python.org/. Verifique se Python está instalado executando um destes comandos:


python --version
      
        

      


python3 --version
      
        

      

Alguns sistemas ainda vinculam python para Python 2, então use python3 (e pip3) para ter certeza de que você está executando o Python 3. Para usar bibliotecas Python, primeiro instale pip com um destes comandos:
@@FIM@@


python -m ensurepip
      
        

      


python3 -m ensurepip
      
        

      

Em seguida, abra Terminal no seu computador e instale as bibliotecas Python usando:


pip install requests beautifulsoup4 
      
        

      


pip3 install requests beautifulsoup4 
      
        

      

Pressione Enter e você verá se eles foram instalados.

  • Conta ChatGPT

Crie uma conta OpenAI gratuita ou paga para acessar ChatGPT, que você usará para escrever, depurar e melhorar seus scripts de raspagem. 

  • Proxies DataImpulse

Integraremos proxies usando credenciais de proxy. Você pode acessar todas as informações necessárias em seu DataImpulse dashboard, dentro dos detalhes do plano selecionado.

Você também pode copiar os detalhes corretos no Seção de exemplo básico de URL.

  • O site que você gostaria de raspar

Neste tutorial, estamos usando Wikipedia e seu lista de países por população. Lembre-se de substituí-lo pelo seu site de destino no código. 

👉 Siga sempre as regras: marque um termos de serviço do site e o arquivo robots.txt antes de fazer a extração para permanecer seguro e ético.

ChatGPT pode gerar código de raspagem Python? Vamos testar

1. Inspecione a página de destino e encontre os elementos para extração.

Clique com o botão direito no elemento desejado (por exemplo, o nome de um país ou número de população) e escolha Inspecionar no seu navegador. Isso abrirá o Developer Tools painel. Passe o mouse sobre o HTML destacado para ter certeza de que selecionou o elemento correto.

2. Salve o código HTML desses elementos.

Depois de localizar o elemento, clique com o botão direito em HTML no painel e copie o Seletor CSS.

3.  Faça uma solicitação detalhada para ChatGPT.

Escreva um prompt que inclua:

  • O destino URL;
  • Os seletores que você copiou;
  • As bibliotecas que você deseja usar (por exemplo, requests, BeautifulSoup);

Mencione proxies e cabeçalhos, MAS não compartilhe suas credenciais com ChatGPT.  

Cole seu prompt em ChatGPT. Nosso prompt: 

“Crie um raspador web usando as bibliotecas Python, Beautiful Soup e Requests. Tempo de importação. Site de destino:
@@FIM@@ 

https://en.wikipedia.org/wiki/List_of_countries_and_dependencies_by_population

Objetivo: Raspar os países e seu número populacional na página de destino. Use proxies DataImpulse como proteção adicional. Adicione cabeçalhos. 

Estes são os seletores CSS:

  • Country: #mw-content-text > div.mw-content-ltr.mw-parser-output > table > tbody > tr:nth-child(2) > td:nth-child(1) > a
  • Population: #mw-content-text > div.mw-content-ltr.mw-parser-output > table > tbody > tr:nth-child(2) > td:nth-child(2)

Saída: Salve todos os dados copiados em um arquivo CSV.

Instruções adicionais: Remova símbolos indesejáveis na saída CSV.”

Aqui está a resposta de ChatGPT:

  • Revise e execute o código final.

Copie o script em seu editor e execute-o. Alguma depuração pode ser necessária se os seletores ou a formatação forem diferentes. Se você estiver usando proxies, sempre inclua Cabeçalhos User-Agent para suportar acesso consistente. Adicionando import time permite usar atrasos entre solicitações (time.sleep()), o que ajuda a equilibrar a carga da solicitação. Aqui está o código: 


import requests
from bs4 import BeautifulSoup
import csv
import re
import time
# DataImpulse proxy configuration
PROXY = "http://username:[email protected]:8000"
proxies = {
    "http": PROXY,
    "https": PROXY
}
url = "https://en.wikipedia.org/wiki/List_of_countries_and_dependencies_by_population"
headers = {
    "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) "
                  "AppleWebKit/537.36 (KHTML, like Gecko) "
                  "Chrome/119.0.0.0 Safari/537.36",
    "Accept-Language": "en-US,en;q=0.9",
}

# Try with retry logic
for attempt in range(3):
    try:
        response = requests.get(url, headers=headers, proxies=proxies, timeout=15)
        response.raise_for_status()
        break
    except requests.exceptions.HTTPError as e:
        print(f"Attempt {attempt+1}: HTTP error {e}. Retrying...")
        time.sleep(2)
else:
    raise SystemExit("Failed to fetch the page after retries.")

soup = BeautifulSoup(response.text, "html.parser")

# Locate the first wikitable
table = soup.find("table", {"class": "wikitable"})
rows = table.find_all("tr")
data = []
for row in rows[1:]:  # skip header row
    cols = row.find_all("td")
    if len(cols) >= 2:
        country = cols[0].get_text(strip=True)
        population = cols[1].get_text(strip=True)

        # Clean unwanted symbols
        population = re.sub(r"\[.*?\]", "", population)  # remove [1], [note] etc.
        population = population.replace(",", "").replace("\xa0", " ").strip()

        data.append([country, population])

# Save results to CSV
with open("countries_population.csv", "w", newline="", encoding="utf-8") as f:
    writer = csv.writer(f)
    writer.writerow(["Country", "Population"])
    writer.writerows(data)
print("Scraping completed. Data saved to countries_population.csv")

      
        






















































      

Assim que o script for executado, seu terminal VS Code mostrará:

Agora abra o countries_population.csv arquivo. Dentro, você encontrará uma planilha estruturada contendo os países e suas populações. Parabéns por completar a tarefa!

Aí vêm os problemas

Ao raspar, as coisas nem sempre funcionam da maneira que esperamos. Aqui estão alguns problemas comuns: 

  1. 403 Erro do cliente: Alguns sites bloqueiam solicitações que não parecem vir de um navegador real. Sempre inclua cabeçalhos como User-Agent, especialmente ao usar proxies.
  2. IP bloqueado ou limitação de taxa:  Solicitações repetidas geralmente revelam seu IP, e os sites podem negar o acesso ou apresentar tarefas de verificação. Usar proxies residenciais (rápido e confiável, a partir de dispositivos domésticos reais) ou proxies móveis (dinâmico e difícil de detectar, de operadoras móveis) para reduzir interrupções de verificação.
  3. Tempos limite ou respostas lentas: O site ou sua conexão podem estar lentos, causando falhas nas solicitações. Adicionar time.sleep() entre solicitações e implementar lógica de nova tentativa.
  4. Seletores CSS quebrados: Os sites costumam mudar de layout, então os seletores salvos podem parar de funcionar. Inspecione novamente os elementos no navegador e atualize os seletores no seu script.
  5. Dados bagunçados:
    @@FIM@@
    HTML pode conter símbolos extras, valores vazios ou formatação inesperada. Limpe os dados em Python antes de salvar em CSV, por exemplo, remova caracteres especiais ou corte os espaços em branco.

Existe um futuro para a raspagem da Web assistida por IA?

Uma resposta simples: sim. Ferramentas de IA como ChatGPT não estão substituindo os desenvolvedores; eles os estão aumentando. Essas ferramentas lidam com tarefas repetitivas de codificação, geram scripts de raspagem rapidamente e sugerem soluções para erros comuns. A raspagem assistida por IA ajudará os profissionais a trabalhar com mais rapidez, permanecerem eficientes e se concentrarem em análises de nível superior em vez de codificação manual. Ainda assim, é importante manter o equilíbrio.

É claro que, mesmo com IA, é importante trabalhar com responsabilidade. Use proxies confiáveis, respeite os limites de taxa e siga os termos de serviço de um site para práticas éticas de raspagem.

 

*Este tutorial destina-se estritamente a fins educacionais. Ele demonstra técnicas de raspagem web. Não se destina a encorajar ou instruir ninguém a copiar sites que violem seus termos de serviço ou leis aplicáveis. Sempre certifique-se de que suas atividades de raspagem sejam éticas, legais e respeitem as regras do site.

Share article: