Web Scraping hat sich von der einfachen regelbasierten Extraktion zu fortschrittlicheren Techniken entwickelt, die sich auf große Sprachmodelle (LLMs) zur kontextbezogenen Datenextraktion stützen. ScrapegraphAI steht an der Spitze dieser Entwicklung und ermöglicht Web Scraping durch leistungsstarke LLMs wie OpenAI, Gemini und sogar lokale Modelle wie Ollama. In diesem Blog erfahren Sie, was ScrapegraphAI ist, wie es funktioniert und wie ein reales Beispiel für das Scraping von Daten von einer Website mit Proxy-Integration funktioniert.
In diesem Blog werden wir darüber berichten:
ScrapegraphAI ist ein robustes Web-Scraping-Framework (Open Source), das große Sprachmodelle zur dynamischen Extraktion von Daten aus Webseiten nutzt. Anders als herkömmliche Scraper, die sich auf starre CSS-Selektoren oder XPath verlassen, verwendet ScrapegraphAI LLMs, um strukturierte Daten aus einer Vielzahl von Quellen zu interpretieren und zu extrahieren, darunter dynamische Webseiten und Dateien wie PDFs. Geben Sie einfach die gewünschten Informationen an und überlassen Sie ScrapeGraphAI die Arbeit, die im Vergleich zu herkömmlichen Scraping-Tools flexibler und wartungsärmer ist. Ein wichtiges Merkmal von ScrapegraphAI ist die Möglichkeit, ein Schema für die zu extrahierenden Daten zu definieren. Sie können ein strukturiertes Format für Ihre Ausgabe festlegen, und ScrapegraphAI passt die extrahierten Daten an dieses Schema an.
Eines der herausragenden Merkmale von ScrapegraphAI ist seine Flexibilität bei der Auswahl von LLMs, mit Unterstützung für:
ScrapegraphAI bietet mehrere Standard-Scraping-Pipelines für unterschiedliche Anforderungen. Einige der gängigsten sind:
Im nächsten Abschnitt werden wir uns auf den SmartScraperGraph konzentrieren, der das Scraping einer einzelnen Seite ermöglicht, indem er einfach eine Eingabeaufforderung und eine Quell-URL bereitstellt.
Dazu müssen Sie ein paar Abhängigkeiten installieren. Dazu können Sie den folgenden Befehl ausführen:
pip install scrapegraphai openai python-dotenv
playwright installieren
Sobald Sie diese installiert haben, stellen Sie sicher, dass Sie Ihren OpenAI-API-Schlüssel bereit haben. Speichern Sie ihn in einer .env-Datei, um Ihre Anmeldedaten sicher zu halten:
OPENAI_APIKEY=Ihr_openai_api_Schlüssel
Nehmen wir an, wir wollen Informationen über alle Bücher auf Books to Scrape extrahieren, einschließlich der Bücher:
Hier ist ein Codebeispiel, das die SmartScraperGraph-Pipeline von ScrapegraphAI verwendet:
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
Modell, indem Sie den API-Schlüssel und den Modellnamen angeben.run()
Methode startet den Scraping-Prozess, und das Ergebnis wird als Liste von Wörterbüchern ausgedruckt, die jeweils Details über ein Buch enthalten.Hier ist ein Beispiel dafür, wie die Ausgabe aussehen könnte:
{'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 ...
Wie Sie sehen können, zieht der Scraper erfolgreich Details für jedes Buch in einem strukturierten Format, bereit für die Verwendung in Ihrer Datenpipeline.
Beim Scraping in großem Maßstab oder bei Websites mit Anti-Scraping-Maßnahmen ist die Integration von Proxys unerlässlich, um IP-Sperren, Captchas und Ratenbegrenzungen zu vermeiden. Die Verwendung von Proxys bietet nicht nur Anonymität, sondern stellt auch sicher, dass Sie große Datenmengen ohne Unterbrechungen scrapen können.
Eine der besten Optionen hierfür sind Proxys für Privatpersonen, da sie von echten IP-Adressen für Privatpersonen stammen und daher schwerer zu erkennen und zu blockieren sind.
Anwohner-Proxys von ProxyScrape eignen sich perfekt für Web-Scraping-Szenarien, vor allem, wenn es um Websites mit strengen Anti-Scraping-Maßnahmen geht. Wir bieten rotierende IP-Adressen von verschiedenen Standorten aus an, um sicherzustellen, dass Ihre Anfragen so aussehen, als kämen sie von echten Nutzern. Auf diese Weise können Sie Beschränkungen umgehen, Verbote umgehen und einen kontinuierlichen Zugang zu den von Ihnen benötigten Daten sicherstellen.
Schauen wir uns nun an, wie Proxies in ScrapegraphAI integriert werden:
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
Taste in der graph_config
. Hier legen Sie die Adresse Ihres Proxyservers, Ihren Benutzernamen und Ihr Passwort fest.In diesem Blog haben wir die Leistungsfähigkeit von ScrapegraphAI untersucht, einem modernen Web-Scraping-Tool, das große Sprachmodelle (Large Language Models, LLMs) verwendet, um strukturierte Daten auf intelligente Weise aus Websites zu extrahieren. Wir haben die wichtigsten Funktionen des Tools vorgestellt, darunter verschiedene Scraping-Pipelines wie den SmartScraperGraph, und ein praktisches Beispiel für das Scraping von Buchdaten von einer Website mit dem GPT-4o-mini-Modell von OpenAI gegeben.
Außerdem haben wir gezeigt, wie man Proxys integriert, insbesondere die Residential Proxys vonProxyScrape. Proxys sind wichtig, um anonym zu bleiben, Beschränkungen zu umgehen und den Datenzugriff aufrechtzuerhalten, insbesondere bei Websites, die Anti-Scraping-Taktiken wie IP-Sperren oder Ratenbeschränkungen anwenden.
Durch die Integration der Proxys vonProxyScrape können Sie sicherstellen, dass Ihre Web-Scraping-Aktivitäten effizienter, sicherer und skalierbarer sind, selbst bei den anspruchsvollsten Websites.