top of page
Forfatterens bildeLille My

Bruk av store språkmodeller til å skrape data på nettet


Webskraping kan være skremmende og overveldende hvis du ikke forstår strukturen på nettstedet. LLM-er kan imidlertid hjelpe deg på en svært effektiv måte. Her vil jeg introdusere to metoder for nettskraping.




Den første metoden er for nybegynnere, der du bare vil skrape en nettside eller to. Tekstbasert skraping innebærer at du kopierer HTML-koden til målnettstedet og deretter bruker en tilfeldig LLM til å hente ut dataene du trenger. Dette kan gjøres ved å lime inn HTML-koden i en LLM som ChatGPT, som deretter returnerer dataene du har bedt om .


Den andre metoden krever bruk av Python. Videoen nedenfor forklarer hvordan du lager en nettskraper ved hjelp av Python og AI-chatboten GPT-4. Skraperen kan oppsummere informasjon fra flere nettsteder og svare på spørsmål om innholdet.

Først må du registrere deg for en OpenAI-konto og skaffe deg en API-nøkkel.

Du må også installere et Python-bibliotek som heter LayeredChain.

Koden består av en funksjon som heter web_QA som tar en liste med nettadresser og en spørring som input.

Funksjonen bruker LayeredChain til å laste inn nettsidene i en vektordatabase og bruker deretter OpenAI API til å ringe GPT-4 for å svare på spørsmål om innholdet på nettsidene.

Videoen demonstrerer koden med et eksempel der brukeren ønsker å lære mer om Idiom AI. Brukeren limer inn fire nettadresser om Idiom AI i koden og ber GPT-4 om å oppsummere hva Idiom AI er, hva det gjør, hvordan man bruker det, og gir også fem interessante instruksjoner som brukeren kan bruke med Idiom AI.


Here is the video.



Here is the script.


from langchain.document_loaders import WebBaseLoader
from langchain.indexes import VectorstoreIndexCreator
from langchain.chat_models.openai import ChatOpenAI
from datetime import datetime
import dotenv

dotenv.load_dotenv()

def web_qa(url_list, query, out_name):
    openai = ChatOpenAI(
        model_name="gpt-3.5-turbo",
        max_tokens=2048
    )
    loader_list = []
    for i in url_list:
        print('loading url: %s' % i)
        loader_list.append(WebBaseLoader(i))

    index = VectorstoreIndexCreator().from_loaders(loader_list)
    ans = index.query(question=query,
                      llm=openai)
    print("")
    print(ans)

    outfile_name = out_name + datetime.now().strftime("%m-%d-%y-%H%M%S") + ".out"
    with open(outfile_name, 'w') as f:
        f.write(ans)

url_list = [
    "https://openaimaster.com/how-to-use-ideogram-ai/",
    "https://dataconomy.com/2023/08/28/what-is-ideogram-ai-and-how-to-use-it/",
    "https://ideogram.ai/launch",
    "https://venturebeat.com/ai/watch-out-midjourney-ideogram-launches-ai-image-generator-with-impressive-typography/"
]

prompt = '''
    Given the context, please provide the following:
    1. summary of what it is
    2. summary of what it does
    3. summary of how to use it
    4. Please provide 5 interesting prompts that could be used with this AI.
'''

web_qa(url_list, prompt, "summary")

Nedenfor finner du retningslinjer fra Journal of Marketing om nettskraping i forskningssammenheng.



I et webinar i Journal of Marketing, med tittelen "Web Data Scraping for Marketing Research", diskuteres viktigheten av webdata i markedsundersøkelser og utfordringene med å samle dem inn. Panelet introduserer et nytt metodisk rammeverk for å hjelpe forskere med å samle inn webdata på en valid og pålitelig måte.

Rammeverket består av tre trinn: valg av kilde, utforming av innsamlingen og uthenting av data. Forskerne må nøye vurdere en rekke faktorer på hvert trinn, for eksempel

  • Valg av kilder

  • Kvalitet: Forskerne bør vurdere kvaliteten på dataene på de potensielle kildenettstedene. Dette kan innebære å vurdere dataenes nøyaktighet, fullstendighet og relevans.

  • Stabilitet: De valgte nettstedene bør være stabile og ikke gjennomgå vesentlige endringer i struktur eller innhold. Dette vil bidra til å sikre at dataene som samles inn, er konsistente over tid.

  • Enkel tilgang: Forskerne må vurdere hvor enkelt det er å få tilgang til dataene på nettstedene de har valgt. Noen nettsteder kan gjøre det vanskelig eller umulig å skrape data automatisk.

  • Utforming av innsamlingen

  • Metoder for datauttrekk: Forskerne må bestemme hvordan de skal hente ut data fra nettstedene de har valgt. Dette kan innebære å skrive skript for å automatisere datainnsamlingsprosessen.

  • Utvalg: Forskerne må bestemme hvordan de skal velge ut data fra nettstedene de har valgt. Dette vil avhenge av forskningsspørsmålet og dataenes art.

  • Juridiske og etiske hensyn: Det er viktig å sikre at dataskrapingsprosessen er lovlig og etisk forsvarlig. Forskere bør respektere robots.txt-filene til nettstedene de skraper, og unngå å samle inn data som er beskyttet av lover om opphavsrett eller personvern.

  • Uttrekking av data

  • Datarensing: Når dataene er hentet ut, er det viktig å rense dem for å fjerne eventuelle feil eller uoverensstemmelser. Dette kan innebære å fjerne dupliserte oppføringer, formatere dataene på en konsistent måte og sjekke om det mangler verdier.

  • Dataovervåking: Forskerne bør overvåke datauttrekksprosessen for å sikre at de får de dataene de forventer. Dette kan innebære å sjekke dataene for feil med jevne mellomrom.

Foredragsholderen diskuterer også viktigheten av dokumentasjon og replikerbarhet i forbindelse med dataskraping på nettet. Hun anbefaler at forskere dokumenterer datainnsamlingsprosessen nøye, slik at andre kan gjenskape resultatene deres.


Alt i alt gir videoen en verdifull oversikt over nettdataskraping for markedsundersøkelser. Den er en flott ressurs for forskere som er interessert i å bruke nettdata i arbeidet sitt.

Her er noen av de viktigste poengene fra videoen:

  • Nettdata er en verdifull ressurs for markedsundersøkelser, men det er viktig å samle dem inn på en valid og pålitelig måte.

  • Det nye metodiske rammeverket kan hjelpe forskere med å ta hensyn til viktige faktorer på hvert trinn i dataskrapingsprosessen.

  • Juridiske og etiske spørsmål må vurderes nøye når man skraper data.

  • Dokumentasjon er avgjørende for replikerbarhet.

Comments


bottom of page