Hallo,
Ik ben sinds gisteren voor het eerst begonnen met Python omdat ik een real-life case heb en daarvoor een script heb getikt. Het doel is al bereikt maar nu wil ik het script verbeteren. Dit is de eerste keer dat ik aan het 'programmeren' ben dus sorry als ik een domme vraag stel.
Wat is de bedoeling? Ik wil een HTML bestand crawlen en daar 3 dingen uit halen:
1. Woord in het Hebreeuws
2. Engelse vertaling
3. Hebreeuwse uitspraak .mp3
Vervolgens zet ik dit in een flash-card app d.m.v. CSV uplpad (en mp3 handmatig uploaden) om de woorden te oefenen.
Hoe zit dat script er tot nu toe uit??
En de output ziet er dan zo uit. Dit copy/paste ik dan uit de IDE console
Nu het probleem. Hoe moeilijk kan het dan zijn om ditzelfde vervolgens ook weg te schrijven naar een .txt? Handig als backup. Het meest simpele lukt niet. Ik heb het volgende stukje code:
Iemand een idee waarom het niet werkt?
Groet!
// edit: had dus te maken met het het feit dat Hebreeuwse tekens niet zomaar konden worden weggeschreven.
props to @gertvdijk
Ik ben sinds gisteren voor het eerst begonnen met Python omdat ik een real-life case heb en daarvoor een script heb getikt. Het doel is al bereikt maar nu wil ik het script verbeteren. Dit is de eerste keer dat ik aan het 'programmeren' ben dus sorry als ik een domme vraag stel.
Wat is de bedoeling? Ik wil een HTML bestand crawlen en daar 3 dingen uit halen:
1. Woord in het Hebreeuws
2. Engelse vertaling
3. Hebreeuwse uitspraak .mp3
Vervolgens zet ik dit in een flash-card app d.m.v. CSV uplpad (en mp3 handmatig uploaden) om de woorden te oefenen.
Hoe zit dat script er tot nu toe uit??
Python:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
| from urllib.request import urlopen, urlretrieve import bs4 url = "https:/link_naar_HTML_bestand" html_file = urlopen(url).read() html_parse = bs4.BeautifulSoup(html_file, 'html.parser') all_container = html_parse('div', 'wlv-item__word-box') ##Deze container bevat hebr+engl+mp3 title = html_parse.find('title').contents[0] title = (title.replace('ongewenste string tekst',"")) print(title) for every_container in all_container: hebr = every_container('span', "wlv-item__word js-wlv-word") ##Hier staat het Hebr woord in de paragraph engl = every_container('span', 'wlv-item__english js-wlv-english') ## En hier de Engl hebr = (hebr[0].contents[0]).replace('.','') ##eventuele ongewenste . wordt hier verwijderd engl = (engl[0].contents[0]).replace('.','') ##net als hier engl_hebr = engl+","+hebr ##ik raap beide bij elkaar, gooi er een , tussen voor CSV en sla dat op in engl_hebr print(engl_hebr) ## dat print ik dan in de IDE ## NU Nog de MP3 wegschrijven en klaar. mp3 = every_container('audio')[0] mp3_src = mp3.get('src ') # , None) urlretrieve(mp3_src, 'mp3/'+engl_hebr+".mp3") ##file name |
En de output ziet er dan zo uit. Dit copy/paste ik dan uit de IDE console
code:
1
2
3
4
5
6
| 50 Most Commonly Used Verbs go,ללכת eat,לאכול drink,לשתות come,לבוא [...] |
Nu het probleem. Hoe moeilijk kan het dan zijn om ditzelfde vervolgens ook weg te schrijven naar een .txt? Handig als backup. Het meest simpele lukt niet. Ik heb het volgende stukje code:
Python:
1
2
3
4
| path = 'C:/hebrew_txt/output.txt' ## moet eigenlijk variable title.txt worden f = open(path,'w') f.write(engl_hebr) f.close() |
Iemand een idee waarom het niet werkt?
Groet!
// edit: had dus te maken met het het feit dat Hebreeuwse tekens niet zomaar konden worden weggeschreven.
props to @gertvdijk
[ Voor 4% gewijzigd door Aviv1 op 07-03-2019 00:26 ]
Let me share my screen...