A Web scraping evoluiu da extração simples baseada em regras para técnicas mais avançadas que dependem de grandes modelos de linguagem (LLMs) para extração de dados com reconhecimento de contexto. A ScrapegraphAI está na vanguarda dessa evolução, permitindo a Web scraping por meio de LLMs avançados como OpenAI, Gemini e até mesmo modelos locais como Ollama. Neste blog, vamos nos aprofundar no que é o ScrapegraphAI, como ele funciona e apresentar um exemplo real de dados de scraping de um site com a integração proxy .
Neste blog, abordaremos o assunto:
O ScrapegraphAI é uma estrutura robusta para a Web scraping (código-fonte aberto) que utiliza grandes modelos de linguagem para extrair dinamicamente dados de sites. Diferentemente dos raspadores tradicionais que dependem de seletores CSS rígidos ou XPath, o ScrapegraphAI usa LLMs para interpretar e extrair dados estruturados de uma ampla variedade de fontes, inclusive páginas dinâmicas da Web e arquivos como PDFs. Basta especificar as informações que você deseja e deixar que o ScrapeGraphAI faça o trabalho pesado, oferecendo uma opção mais flexível e de baixa manutenção em comparação com as ferramentas tradicionais do site scraping . Um recurso importante do ScrapegraphAI é sua capacidade de permitir que os usuários definam um esquema para os dados que desejam extrair. Você pode especificar um formato estruturado para sua saída e o ScrapegraphAI ajustará os dados extraídos para que correspondam a esse esquema.
Um dos recursos de destaque do ScrapegraphAI é sua flexibilidade na escolha de LLMs, com suporte para:
O ScrapegraphAI oferece vários pipelines scraping padrão para atender a várias necessidades. Alguns dos mais comuns incluem:
Na próxima seção, vamos nos concentrar no SmartScraperGraph, que permite uma página única scraping , bastando fornecer um prompt e um URL de origem.
Para acompanhar o processo, você precisa instalar algumas dependências. Você pode fazer isso executando o seguinte comando:
pip install scrapegraphai openai python-dotenv
playwright install
Depois de instalá-los, verifique se você tem sua chave de API da OpenAI pronta. Armazene-a em um arquivo .env para manter suas credenciais seguras:
OPENAI_APIKEY=sua_chave_openai_api
Digamos que desejemos extrair informações sobre todos os livros em Books to Scrape, incluindo:
Aqui está um exemplo de código usando o pipeline SmartScraperGraph do ScrapegraphAI:
import os
from dotenv import load_dotenv
from scrapegraphai.graphs import SmartScraperGraph
# Load the OpenAI API key from .env file
load_dotenv()
openai_key = os.getenv("OPENAI_APIKEY")
# Define configuration for the LLM
graph_config = {
"llm": {
"api_key": openai_key,
"model": "openai/gpt-4o-mini",
},
}
prompt = """
Extract all the books from this website including
- Book Name
- Price
- Availability
- Reviews
"""
# Create the SmartScraperGraph instance
smart_scraper_graph = SmartScraperGraph(
prompt=prompt,
source="https://books.toscrape.com/",
config=graph_config
)
if __name__ == '__main__':
result = smart_scraper_graph.run()
print(result)
GPT-4o-mini
fornecendo a chave da API e especificando o nome do modelo.executar()
inicia o processo scraping , e o resultado é impresso como uma lista de dicionários, cada um contendo detalhes sobre um livro.Aqui está um exemplo de como o resultado pode ser:
{'Book Name': 'A Light in the Attic', 'Price': '£51.77', 'Availability': 'In stock', 'Reviews': 'NA'},
{'Book Name': 'Tipping the Velvet', 'Price': '£53.74', 'Availability': 'In stock', 'Reviews': 'NA'},
{'Book Name': 'Soumission', 'Price': '£50.10', 'Availability': 'In stock', 'Reviews': 'NA'},
{'Book Name': 'Sharp Objects', 'Price': '£47.82', 'Availability': 'In stock', 'Reviews': 'NA'},
# ... more books ...
Como você pode ver, o raspador extrai com êxito os detalhes de cada livro em um formato estruturado, pronto para ser usado em seu pipeline de dados.
Quando scraping em escala ou direcionado a sites com medidas antiscraping , a integração proxies torna-se essencial para evitar proibições de IP, captchas e limitação de taxa. O uso do proxies não apenas proporciona anonimato, mas também garante que você possa scrape grandes quantidades de dados sem interrupções.
Uma das melhores opções para isso é o proxies residencial, pois eles vêm de endereços IP residenciais reais, o que os torna mais difíceis de detectar e bloquear.
Residencial proxies de ProxyScrape são perfeitos para cenários da Web scraping , especialmente quando se tem como alvo sites com medidas rigorosas contrascraping . Oferecemos endereços IP rotativos de vários locais, garantindo que suas solicitações pareçam vir de usuários reais. Isso ajuda a contornar restrições, evitar proibições e garantir o acesso contínuo aos dados de que você precisa.
Agora vamos ver como o proxies está integrado ao ScrapegraphAI:
from dotenv import load_dotenv
import os
from scrapegraphai.graphs import SmartScraperGraph
# Load the OpenAI API key from .env file
load_dotenv()
openai_key = os.getenv("OPENAI_APIKEY")
# Define the configuration with proxy integration
graph_config = {
"llm": {
"api_key": openai_key,
"model": "openai/gpt-4o-mini",
},
"loader_kwargs": {
"proxy": {
"server": "rp.proxyscrape.com:6060",
"username": "your_username",
"password": "your_password",
},
},
}
prompt = """
Extract all the books from this website including
- Book Name
- Price
- Availability
- Reviews
"""
# Create the SmartScraperGraph instance
smart_scraper_graph = SmartScraperGraph(
prompt=prompt,
source="https://books.toscrape.com/",
config=graph_config
)
# Run the scraper and print the result
if __name__ == '__main__':
result = smart_scraper_graph.run()
print(result)
loader_kwargs
na chave graph_config
. Aqui, você define o endereço do servidor proxy , o nome de usuário e a senha.Neste blog, exploramos o poder do ScrapegraphAI, uma ferramenta moderna da Web scraping que usa modelos de linguagem grandes (LLMs) para extrair dados estruturados de sites de forma inteligente. Apresentamos seus principais recursos, incluindo vários pipelines scraping como o SmartScraperGraph, e fornecemos um exemplo prático de scraping dados de livros de um site usando o modelo GPT-4o-mini da OpenAI.
Além disso, mostramos como integrar proxies, especialmente ProxyScrape's residencial proxies. Proxies são cruciais para permanecer anônimo, contornar restrições e manter o acesso aos dados, especialmente com sites que usam táticas antiscraping como proibições de IP ou limites de taxa.
Ao integrar o ProxyScrape residencial proxies, você garante que suas atividades na Web scraping sejam mais eficientes, seguras e dimensionáveis, mesmo nos sites mais desafiadores.