Gå til innhold

Script for å hente ut definisjoner fra ordbok på nett


Anbefalte innlegg

Driver og lærer meg finsk, og det mangler dessverre lett tilgjengelige ordlister man kan pugge i vei. Derfor tenkte jeg jeg skulle lage meg en egen, basert på en frekvensliste jeg har funnet. Scriptet trenger da å gjøre følgende:

 

-Hente ut definisjonene til det aktuelle ordet fra denne ordboksiden

 

-evt. fjerne html-formatering fra definisjonene (er usikker på om programmet jeg skal importere dette til (Anki) støtter html fullt ut)

 

-lagre som en enkelt linje i en tab-separert tekst-fil, med format "ord<tab>definisjoner<ny linje>"

 

-gjenta for hvert nye ord i frekvenslista

 

Dessverre kan jeg null om scriptingspråk (tok noe "innføring i programmering" ved universitetet for 6 år siden, brukte java da, husker minimalt :blush: ). Må man lære mye for å få til noe slikt? Vil Python egne seg (egnede biblioteker etc.)? Er det verdt å lære seg et scriptingspråk bare for å gjøre den ene oppgaven, eller skal jeg heller bare spørre noen pent om de kan gjøre det for meg (evt betale dem)?

Lenke til kommentar
Videoannonse
Annonse
  • 3 måneder senere...

Ved å benytte urllib/urllib2 bibliotekene klarte jeg å hente data fra ordboken for ordet "Sanakirjalla", så ja python egner seg til dette formålet. Denne returnerer html men denne kan man feks "vaske" ved å benytte BeautifulSoup

 

 

#! /usr/bin/python
import urllib
import urllib2
import gzip
from StringIO import StringIO

#request headers
headers = { "Accept" : "*/*",
           "Accept-Charset" : "ISO-8859-1,utf-8;q=0.7,*;q=0.3",
           "Accept-Encoding" : "gzip,deflate,sdch",
           "Accept-Language" : "en-US,en;q=0.8",
           "Connection" : "keep-alive",
           "Host" : "www.suomienglantisanakirja.fi",
           "Referer" : "http://www.suomienglantisanakirja.fi/english.php",
           "User-Agent" : "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.162 Safari/535.19",
           "X-Requested-With":"XMLHttpRequest" }

def mk_req(searchWord):
#Parameter values
values = {"english" : "true" , "sana" : searchWord}
# encode seleced values
data = urllib.urlencode(values)
# setting up target url
url='http://www.suomienglantisanakirja.fi/WiktionaryLiveSearch.php?'+data
req = urllib2.Request(url, None, headers)

# execute http request
response = urllib2.urlopen(req)

if response.info().get('Content-Encoding') == 'gzip':
	buf = StringIO( response.read())
	f = gzip.GzipFile(fileobj=buf)
	respData = f.read()
	return respData
#test
print mk_req("Sanakirjalla")

 

Output:

@Latest searches: <a class="p" href="/kuparinen">kuparinen</a>, <a class="p" href="/leverage">leverage</a>, <a class="p" href="/kitchentable_software">kitchentable software</a>, <a class="p" href="/kynänteroitin">kynänteroitin</a>, <a class="p" href="/directionless">directionless</a>, <a class="p" href="/knightliness">knightliness</a>, <a class="p" href="/konnanleinikki">konnanleinikki</a>, <a class="p" href="/laces">laces</a>@<div id='leftiY'>Search Index:</div><div id='rightiY'>Translation:</div><div id='left'> </div><div id='right'><p class="notfound"><b>Search word <span class="red">sanakirjalla</span> was not found.</b></p><p class="didyoumean">Did you mean(in English):</p><ul><li class="empty"><a class="p" href="/synagogal">synagogal</a></li><li class="empty"><a class="p" href="/sonically">sonically</a></li><li class="empty"><a class="p" href="/sneakily">sneakily</a></li><li class="empty"><a class="p" href="/scenically">scenically</a></li><li class="empty"><a class="p" href="/snakelike">snakelike</a></li><li class="empty"><a class="p" href="/sneakingly">sneakingly</a></li><li class="empty"><a class="p" href="/sinkable">sinkable</a></li></ul><p class="empty"> </p></div>

Endret av gurugutten
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...