Enklere nettskraping med ScrapeGraphAI: Slik utnytter du store språkmodeller
mai 2024
Nettskraping, det vil si prosessen med å hente ut data fra nettsider, har blitt et uunnværlig verktøy for forskere, dataforskere og virksomheter. Kompleksiteten i nettsidestrukturer og behovet for tilpasset skrapelogikk skaper imidlertid ofte betydelige utfordringer. ScrapeGraphAI, et Python-bibliotek, har som mål å fornye nettskraping ved å utnytte store språkmodeller (LLM-er) og direkte graflogikk. Med ScrapeGraphAI kan brukere uten stor innsats lage skrapeprosesser for nettsider, dokumenter og XML-filer ved ganske enkelt å beskrive hvilken informasjon de ønsker å hente ut.
ScrapeGraphAI har mange bruksområder i forskning, særlig når data skal samles inn fra flere nettkilder. Her er noen scenarioer der ScrapeGraphAI kan være svært nyttig:
Litteraturgjennomgang: Forskere kan bruke ScrapeGraphAI til å hente ut relevant informasjon fra vitenskapelige artikler, tidsskrifter og konferanseskrifter, og dermed effektivisere litteraturgjennomgangen.
Markedsanalyse: Ved å skrape data fra netthandelssider, sosiale medier og nyhetsartikler kan forskere samle verdifull innsikt til markedsanalyse og studier av forbrukeratferd.
Sentimentanalyse: ScrapeGraphAI kan brukes til å skrape brukeranmeldelser, kommentarer og meninger fra ulike nettsider, slik at forskere kan gjennomføre sentimentanalyse på store datasett.
Slik bruker du ScrapeGraphAI: ScrapeGraphAI er enkelt å bruke og krever minimalt med oppsett.
Følg disse trinnene for å komme i gang:
Installer ScrapeGraphAI med pip:
pip install scrapegraphai
Installer Playwright for JavaScript-basert skraping:
playwright install
Sett opp OpenAI API-nøkkelen din (hvis du bruker OpenAI-modeller).
Velg én av de tre hovedprosessene for skraping som ScrapeGraphAI tilbyr:
A. SmartScraperGraph: Skraper for enkeltsider som krever en brukerprompt og en inndatakilde.
B. SearchGraph: Skraper for flere sider som henter ut informasjon fra de øverste treffene i en søkemotor.
C. SpeechGraph: Skraper for enkeltsider som henter ut informasjon fra en nettside og genererer en lydfil.
Konfigurer skrapeprosessen ved å angi LLM, innbyggingsmodell og andre relevante innstillinger.
Kjør skrapeprosessen med ønsket prompt og kilde, og hent ut informasjonen.
Eksempel 1: SmartScraper med lokale modeller. Husk å ha Ollama installert og laste ned modellene med kommandoen ollama pull.
from scrapegraphai.graphs import SmartScraperGraph
graph_config = {
"llm": {
"model": "ollama/mistral",
"temperature": 0,
"format": "json", # Ollama needs the format to be specified explicitly
"base_url": "http://localhost:11434", # set Ollama URL
},
"embeddings": {
"model": "ollama/nomic-embed-text",
"base_url": "http://localhost:11434", # set Ollama URL
},
"verbose": True,
}
smart_scraper_graph = SmartScraperGraph(
prompt="List me all the projects with their descriptions",
also accepts a string with the already downloaded HTML code
source="https://perinim.github.io/projects",
config=graph_config
)
result = smart_scraper_graph.run()
print(result)
Resultatet blir en liste over prosjekter med beskrivelser, som i eksempelet nedenfor:
{'projects': [{'title': 'Rotary Pendulum RL', 'description': 'Open Source project aimed at controlling a real life rotary pendulum using RL algorithms'}, {'title': 'DQN Implementation from scratch', 'description': 'Developed a Deep Q-Network algorithm to train a simple and double pendulum'}, ...]}
Eksempel 2: SearchGraph med blandede modeller. Vi bruker Groq som LLM og Ollama til innbyggingene.
from scrapegraphai.graphs import SearchGraph
Define the configuration for the graph
graph_config = {
"llm": {
"model": "groq/gemma-7b-it",
"api_key": "GROQ_API_KEY",
"temperature": 0
},
"embeddings": {
"model": "ollama/nomic-embed-text",
"base_url": "http://localhost:11434", # set ollama URL arbitrarily
},
"max_results": 5,
}
Create the SearchGraph instance
search_graph = SearchGraph(
prompt="List me all the traditional recipes from Chioggia",
config=graph_config
)
Run the graph
result = search_graph.run()
print(result)
Resultatet blir en liste over oppskrifter, som i eksempelet nedenfor:
{'recipes': [{'name': 'Sarde in Saòre'}, {'name': 'Bigoli in salsa'}, {'name': 'Seppie in umido'}, {'name': 'Moleche frite'}, {'name': 'Risotto alla pescatora'}, {'name': 'Broeto'}, {'name': 'Bibarasse in Cassopipa'}, {'name': 'Risi e bisi'}, {'name': 'Smegiassa Ciosota'}]}
Eksempel 3: SpeechGraph med OpenAI. Du trenger bare å oppgi OpenAI API-nøkkelen og modellnavnet.
from scrapegraphai.graphs import SpeechGraph
graph_config = {
"llm": {
"api_key": "OPENAI_API_KEY",
"model": "gpt-3.5-turbo",
},
"tts_model": {
"api_key": "OPENAI_API_KEY",
"model": "tts-1",
"voice": "alloy"
},
"output_path": "audio_summary.mp3",
}
************
Create the SpeechGraph instance and run it
************
speech_graph = SpeechGraph(
prompt="Make a detailed audio summary of the projects.",
source="https://perinim.github.io/projects/",
config=graph_config,
)
result = speech_graph.run()
print(result)
Utfordringer og hensyn: Selv om ScrapeGraphAI tilbyr en kraftfull og intuitiv tilgang til nettskraping, er det noen forhold man bør være oppmerksom på:
Respekter nettsidens vilkår for bruk og robots.txt: Sørg for at skrapingen er i tråd med nettsidens vilkår og ikke bryter med juridiske eller etiske retningslinjer.
API-bruk og kostnader: Når du bruker tredjeparts-API-er som OpenAI eller Groq, bør du være bevisst på tilhørende kostnader og bruksbegrensninger.
Datakvalitet og pålitelighet: Nøyaktigheten i informasjonen som hentes ut, avhenger av kvaliteten på LLM-en og hvor tydelige brukerpromptene er. Det er avgjørende å validere de skrapte dataene før de brukes i kritiske sammenhenger.
ScrapeGraphAI representerer et betydelig framskritt innen nettskraping og gjør det enkelt for brukere å hente ut informasjon fra nettsider. Ved å utnytte store språkmodeller og direkte graflogikk forenkler ScrapeGraphAI skrapeprosessen og åpner nye muligheter for forskere og dataentusiaster. Enten du gjennomfører en litteraturgjennomgang, analyserer markedstrender eller utfører sentimentanalyse, gir ScrapeGraphAI en sømløs og effektiv løsning på dine behov for datauttrekk.





Kommentarer