How would I get readeable text from webpage using selenium and python - python

I am using selenium to navigate a webpage - https://gmet.edupage.org/. I have gotten to the login page entered the login details and entered the page where I wanna read the text and print it into console. There isnt any text I dont want I just want to print out only and only the visible text not the code. Unfortunately there is a lot of text so manually setting each element and printing the text out would take ages. So is there an easy function or way to print out only the readeable text with selenium?

First find the body of the page and just print out the text within it using .text
txt = driver.find_element_by_class_name('browser_chrome')
print(txt.text)
Output:
Tieto stránky používajú súbory cookie na analýzu návštevnosti stránok. Informácie o používaní našich stránok sú na tento účel zdieľané so spoločnosťou Google.
Ok
PRIHLÁSENIE
GYMNÁZIUM, Metodova 2, Bratislava
Rozvrh
Známky
Písomky / DÚ
Objednávanie obedov
Menu
Aktuálne informácie
O škole
Školský rok
Informácie pre žiakov školy
Tlačivá na stiahnutie
Štúdium v zahraničí
Záujemcovia o štúdium
Projekt FinQ
Školská jedáleň
Školský psychológ
METODKA občianske združenie
Športový klub METODKA
Rada školy
Web Mail
Informácie pre verejnosť
Kontakty
Škola je zapojená
Škola získala certifikát
Naša škola získala v roku 2014 a v roku 2017 a 2020 opakovane obnovila francúzsky certifikát kvality LabelFrancEducation
VIAC »
Pondelok 12. 10. 2020
Počet návštev: 25872260
"Naše obedy"
VIAC »
Škola je zapojená
Škola je zapojená
FinQ – PROGRAM FINANČNÉHO VZDELÁVANIA A ROZVOJA FINANČNEJ KULTÚRY PRE ŠKOLY
VIAC »
Aktuálne informácie
Aktualizácia opatrení ku dňu 1.10.2020
Usmernenie MŠVVaŠ SR k postupu škôl a školských zariadení pri realizácií výchovno vzdelávacieho procesu počas mimoriadnej situácie v súvislosti s ochorením Covid-19
Nad rámec opatrení vyplývajúcich z manuálov opatrení pre školy a školské zariadenia sa bez ohľadu na farbu semaforu predmetnej školy neodporúča realizovať:
organizáciu škôl v prírode a lyžiarskych výcvikov, a to ani dennou formou
organizácia kultúrnych, umeleckých a tanečných aktivít mimo povinného výchovno-vzdelávacieho procesu
VIAC »
Ako postupovať v jednotlivých prípadoch v súvislosti s COVID-19?
Riaditeľka školy zverejňuje pre rodičov, žiakov a učiteľov prehľad ako postupovať v jednotlivých prípadoch pri ochorení COVID-19
Ako postupovať v jednotlivých prípadoch (podozrenie, resp. pozitivita)?
Vyhlásenie zákonného zástupcu o bezinfekčnosti
Vyhlásenie návštevníka školy po súhlase riaditeľky školy
Informácie pre rodičov a žiakov školy
Riaditeľka školy si Vám dovoľuje oznámiť, že aktuálna situácia na škole v súvislosti s pandémiou COVID- 19 je nezmenená od začiatku školského roka, t.j. škola je v zelenej fáze semaforu. Výsledky testovaných žiakov a učiteľov na COVID-19, ktorí nastúpili na začiatku školského roka do školy, boli všetky k dnešnému dňu, 18.9.2020, negatívne.
Podrobné informácie k jednotlivým fázam a im prislúchajúcim opatreniam sú uvedené v „Manuáli pre stredné školy k úprave organizácie a podmienok výchovy a vzdelávania v stredných školách pre školský rok 2020/2021“ zverejnenom na stránke MŠVVaŠ SR na tomto linku: https://www.minedu.sk/stredne-skoly-aktualizovane-1692020/, ďalej len „Manuál“. Podmienky výchovy a vzdelávania na našej škole sú vždy plne v súlade s uvedeným dokumentom, aj po jeho aktualizáciách.
VIAC »
Ukáž sa! Pomôž Eliške získať grant.
Podpor svojim hlasom Elišku Klepkovú zo Septimy A, ktorá je vynikajúca atlétka, výborná žiačka, držiteľka strieborného odznaku DofE.
Bližšie informácie o Eliške a spôsobe hlasovania nájdeš na stránke:
https://www.olympic.sk/ukazsa/eliska-klepkova.
Hlasovať môžeš každý deň do 27.9.2020.
Začiatok školského roka 2020/2021
Vyučovanie začína dňa 2.9.2020.
V tento deň majú žiaci vyučovanie od 8:00 hod. do 9:30 hod. (V tento deň sa obedy v školskej jedálni nevydávajú).
Vstup žiakov do školy je od 7:00 hod. do 8:00 hod. do budovy na Metodovej aj Jelačičovej z ulice aj z dvora, celkovo cez štyri vstupy. Prichádzať môžu priebežne. Pri každom vchode bude pedagogický dozor koordinovať vstup žiakov.
Odporúčame žiakom, aby sa nezdržiavali v priestoroch pred budovami školy a dodržiavali dvojmetrové rozostupy.
Z dôvodu dodržiavania protiepidemických opatrení a odporúčaní Ministerstva školstva, vedy, výskumu a športu SR zákonný zástupca:
VIAC »
OZNAM
Úradné hodiny počas prázdnin
v termíne od 13. 07. 2020 do 21. 08. 2020
sú každú stredu od 9.00 h do 12.00 h.
Ing. Zuzana Vaterková
riaditeľka školy
Informácia pre uchádzačov o štúdium na 8GYM
Všetkým uchádzačom o 8-ročné štúdium oznamujeme, že ku dňu 7.7.2020 sú všetky miesta na prijatie obsadené na 100%.
Ing. Zuzana Vaterková, riaditeľka školy
Kontakt
GYMNÁZIUM
Metodova 2
821 08 BRATISLAVA
+421 2 50 10 24 11
Fotogaléria

Related

Problems in trying to decode through statistics

My goal is to decode a message with the statistics of letters occurrence in the French language. For that, I created a first function which creates a string in decreasing order of occurrence in the text. Then, I match the index of the characters and I change each character with the one corresponding to the French language. The problem is that the text comes out unchanged in the console. I am a beginner in programming and any help on my mistakes or inaccuracies are appreciated. Thanks !!!
import string
texte = f"""iwnspa rynjjdj arg sj hjuajhask awaigkhihaj ag sj ongyaonghihaj ps vvha rhaiwa, rdsqajg idjrhpaka
idooa wa xaka pa wn gyadkha pa w’hjbdkonghdj. hw arg ja wa 30 nqkhw 1916 n xagdrlaf, pnjr wa
ohiyhunj. rdj xaka arg sj csua, ag rn oaka arg wa xkdqhrask ps wfiaa pa unfwdkp, sja nsgka qhwwa
ps ohiyhunj. hw agspha n w’sjhqakrhga ps ohiyhunj ds hw rshg sj pdszwa iskrsr aj awaigkhihga
ag aj ongyaonghmsar. hw dzghajg sja whiajia pnjr iar pasv phrihxwhjar aj 1936, nqnjg pa xdskrshqka
rar agspar ns kaxsga ohg (onrrniysraggr hjrghgsga db gaiyjdwduf ). hw rdsghajg aj 1940 sja
gyara pa pdigdkng aj ongyaonghmsar (awwa xdkgnhg rsk par nxxwhinghdjr par ongyaonghmsar n
wn uajaghmsa) ag sj oaodhka pa onrgak aj awaigkhihga. rh wn xkaohaka bsg wnkuaoajg hujdkaa,
wn raidjpa,msh avxwhmsa idooajg sghwhrak war nwuazkar pa zddwa xdsk w’njnwfra par rhujnsv
awaigkhmsar, arg kargaa iawazka. aj 1941, hw arg aoznsiya pnjr war wnzdkngdhkar pa wn idoxnujha
pa gawaxydja ngg zaww. hooaphngaoajg, hw gknqnhwwa rsk par xkdcagr aj whnhrdj nqai war
rakqhiar raikagr, msh wsh bdjg jdgnooajg nzdkpak par msarghdjr pa ikfxgduknxyha. aj 1949, hw
ra onkha; xnk wn rshga, hw nskn gkdhr ajbnjgr. rynjjdj gknqnhwwa nsv wnzdkngdhkar pa zaww
csrms’aj 1971. xnknwwawaoajg n iawn, hw arg nsrrh xkdbarrask ns ohg pa 1958 n 1978. rynjjdj
idoxkajpmsa gdsga pdjjaa, oaoa wn qdhv ds par honuar, xasg ra gknjroaggka n w’nhpa p’sja rshga
pa 0 ag pa 1 (war zhgr), dsqknjg wn qdha nsv idoosjhinghdjr jsoakhmsar ag jdj xwsr njnwduhmsar.
hw odjgka nsrrh idooajg wa bnhg p’ncdsgak iakgnhjr zhgr n sj oarrnua xasg xakoaggka pa qakhbhak
msa war nsgkar djg aga idkkaigaoajg gknjrohr (dj xnkwa pa idpa idkkaigask p’akkaskr). hw n
kais pa jdozkasv ydjjaskr, pdjg wn oapnhwwa jnghdjnwa par rihajiar par onhjr ps xkarhpajg cdyjrdj
aj 1966, ag wa xkhv lfdgd aj 1985. n wn bhj pa rn qha, hw rdsbbka pa wn onwnpha p’nwtyahoak,
ia msh wa idjpshg pnjr sja onhrdj pa kaxdr ps onrrniysraggr. hw f paiapa wa 24 baqkhak 2001, n
w’nua pa 84 njr."""
def count(texte):
ordre_txt = {}
order = ""
texte.lower()
alfb = list(string.ascii_lowercase)
for i in range(len(alfb)):
ordre_txt[alfb[i]] = texte.count(alfb[i])
ordre_txt = sorted(ordre_txt.items(), key = lambda x: x[1], reverse = True)
for elt in ordre_txt:
order += elt[0]
return order
def trad2(texte):
ordre_fr = 'esaitnruolhdcgmpvfqbjxzykw'
ordre_txt = count(texte)
for i in range(26):
texte.replace(ordre_txt[i], ordre_fr[i])
return texte
print(trad2(texte))
str.lower()
Return a copy of the string with all the cased characters converted to lowercase. So use texte = texte.lower() instead of texte.lower() at the 3rd line in def count(texte):.
Apply str.translate(table) in def trad2(texte): e.g. as follows:
def trad2(texte):
ordre_fr = 'esaitnruolhdcgmpvfqbjxzykw'
ordre_txt = count(texte)
tr_table = str.maketrans(ordre_txt, ordre_fr)
return texte.translate(tr_table)
Note the str.maketrans() static method (returns a translation table usable for str.translate())…If there are two arguments, they must be strings of equal length, and in the resulting dictionary, each character in x will be mapped to the character at the same position in y.

how to extract specific content from dataframe based on condition python

Consider the following pandas dataframe:
this is an example of ingredients_text :
farine de blé 34% (france), pépites de chocolat 20g (ue) (sucre, pâte de cacao, beurre de cacao, émulsifiant lécithines (tournesol), arôme) (cacao : 44% minimum), matière grasse végétale (palme), sucre, 8,5% chocolat(sucre, pâte de cacao, cacao et cacao maigre en poudre) (cacao: 38% minimum), 5,5% éclats de noix de pécan (non ue), poudres à lever : diphosphates carbonates de sodium, blancs d’œufs, fibres d'acacia, lactose et protéines de lait, sel. dont lait.
oignon 18g oil hell: kartoffelstirke, milchzucker, maltodextrin, reismehl. 100g produkt enthalten: 1559KJ ,energie 369 kcal lt;0.5g lt;0.1g 909 fett davon gesättigte fettsāuren kohlenhydrate davon ,zucker 26g
I separated the ingredients of each line into words with the folowing code :
for i in df['ingredients_text'][:].index:
words = df["ingredients_text"][i].split(',')
df["ingredients_text"][i]=words
Any idea of how to extract the ingredients with % and g from the text in onether column called 'ingredient' ?
For instance, the desired output should be:
['farine de blé 34%', 'pépites de chocolat 20g','cacao : 44%' ,'8,5% chocolat' ,'cacao: 38%', '5,5% éclats de noix de pécan']
['oignon 18g oil hell', '100g produkt enthalten', 'lt;0.5g', 'lt;0.1g' , '26g zucker']
df = pd.DataFrame({'ingredient_text': ['a%bgC, abc, a%, cg', 'xyx']})
ingredient_text
0 a%bgC, abc, a%, cg
1 xyx
Split the ingredients into a list
df['ingredient_text'] = df['ingredient_text'].str.split(',')
ingredient_text
0 [a%bgC, abc, a%, cg]
1 [xyx]
Search for your strings in the list
df['ingredient'] = df['ingredient_text'].apply(lambda x: [s for s in x if ('%' in s) or ('g' in s)])
ingredient_text ingredient
0 [a%bgC, abc, a%, cg] [a%bgC, a%, cg]
1 [xyx] []

how to create groups from string? [duplicate]

This question already has answers here:
How do I split a list into equally-sized chunks?
(66 answers)
Closed 2 years ago.
I have string and I will do split for this string and then I will get 320 elements. I need to create 4 groups. Every group will be with 100 elements and the last group must be with 20 last elements. And the last step is that all groups must be string and not list. how can I do that?
I can do that if I know how many elements I have:
s_l = 'AA AAL AAOI ACLS ADT ADTX ADVM AEL AIG ALEC ALLY ALT AMCX ANGI APA APDN APLS APPS APRN AQUA ARMK ARNC ARVN ATNM ATOM ATRA ATSG AVCT AVT AX AXDX BCLI BE BEAM BJRI BKE BKU BLDR BLNK BMRA BOOT BXS BYD CAKE CALX CAPR CARG CARR CARV CATM CC CCL CELH CEQP CFG CHEF CHRS CIT CLDX CLR CLSK CNK CNST CODX COLB COOP CPE CRS CTVA CUK CVET CVI CVM CYTK DAL DBX DCP DDS DEI DISCA DISCK DK DNB DRNA DVAX DXC ECOM EIGR ELAN ELF ELY ENVA EQ EQT EXEL FE FHI FIXX FL FLWS FMCI FORM FOX FOXA FRTA FUN GBX GIII GM GNMK GOCO GPRE GRAF GRPN GRWG GTHX GWB HALO HCC HCSG HEAR HFC HGV HIBB HMSY HOG HOME HP HSC HTH HWC IMUX IMVT INO INOV INSG INSM INT IOVA IRDM ITCI JELD JWN KMT KODK KPTI KSS KTB KTOS KURA LAKE LB LCA LL LPI LPRO LSCC LYFT MAXR MBOT MCRB MCS MD MDP MGM MGNX MIC MLHR MOS MRSN MTOR MXL MYGN NCLH NCR NK NKTR NLS NMIH NOVA NTLA NTNX NUAN NVST NXTC ODP OFC OKE OMER OMF OMI ONEM OSPN OSUR OXY OZK PACW PD PDCE PDCO PEAK PGNY PLAY PLCE PLT PLUG PPBI PRPL PRTS PRVB PS PSNL PSTX PSXP PTGX PVAC RCUS REAL REZI RKT RMBL RPAY RRGB RRR RVLV RVP RXN SANM SAVE SBGI SC SCPL SEAS SEM SFIX SFM SGMS SGRY SHLL SHOO SHYF SIX SKX SLQT SMCI SNAP SNDX SNV SONO SPAQ SPCE SPR SPWH SPWR SRG SRNE SSNT SSSS STOR SUM SUN SUPN SVMK SWBI SYF SYRS TBIO TCDA TCF TCRR TDC TEX TFFP TGTX THC TMHC TRGP TRIP TSE TUP TVTY UBX UCBI UCTT UFS UNFI UONE UPWK URBN USFD VCRA VERI VIAC VIRT VIVO VREX VSLR VSTO VXRT WAFD WBS WFC WHD WIFI WKHS WORK WORX WRK WRTC WW WWW WYND XEC XENT XPER XRX YELP ZGNX ZUMZ ZYXI'
split_s_l = s_l.split(" ")
part_1 = ' '.join(split_s_l[:100])
part_2 = ' '.join(split_s_l[100:200])
part_3 = ' '.join(split_s_l[200:300])
part_4 = ' '.join(split_s_l[300:])
for part in (part_1, part_2, part_3, part_4):
print(part)
but I don't know how to do that If I have many elements in list.
For a variable number of items, you can loop using:
sep = ' '
num = 100
split_s_l = s_l.split(sep)
for i in range(0, len(split_s_l), num):
part = sep.join(split_s_l[i : i+num])
print(part)
Bear in mind that for the last slice in the example case ([300:400]) it does not matter that there are only 320 elements -- just the last 20 items will be included (no error).
Something like this?
def break_up(s, nwords, separator):
words = s.split()
return [separator.join(words[n:n+nwords]) for n in range(0, len(words), nwords)]
print(break_up('a b c d e f g h', 3, ' '))
Result:
['a b c', 'd e f', 'g h']
Of course, you might call as print(break_up(s_l, 100, ' '))
Below
s_l = 'AA AAL AAOI ACLS ADT ADTX ADVM AEL AIG ALEC ALLY ALT AMCX ANGI APA APDN APLS APPS APRN AQUA ARMK ARNC ARVN ATNM ATOM ATRA ATSG AVCT AVT AX AXDX BCLI BE BEAM BJRI BKE BKU BLDR BLNK BMRA BOOT BXS BYD CAKE CALX CAPR CARG CARR CARV CATM CC CCL CELH CEQP CFG CHEF CHRS CIT CLDX CLR CLSK CNK CNST CODX COLB COOP CPE CRS CTVA CUK CVET CVI CVM CYTK DAL DBX DCP DDS DEI DISCA DISCK DK DNB DRNA DVAX DXC ECOM EIGR ELAN ELF ELY ENVA EQ EQT EXEL FE FHI FIXX FL FLWS FMCI FORM FOX FOXA FRTA FUN GBX GIII GM GNMK GOCO GPRE GRAF GRPN GRWG GTHX GWB HALO HCC HCSG HEAR HFC HGV HIBB HMSY HOG HOME HP HSC HTH HWC IMUX IMVT INO INOV INSG INSM INT IOVA IRDM ITCI JELD JWN KMT KODK KPTI KSS KTB KTOS KURA LAKE LB LCA LL LPI LPRO LSCC LYFT MAXR MBOT MCRB MCS MD MDP MGM MGNX MIC MLHR MOS MRSN MTOR MXL MYGN NCLH NCR NK NKTR NLS NMIH NOVA NTLA NTNX NUAN NVST NXTC ODP OFC OKE OMER OMF OMI ONEM OSPN OSUR OXY OZK PACW PD PDCE PDCO PEAK PGNY PLAY PLCE PLT PLUG PPBI PRPL PRTS PRVB PS PSNL PSTX PSXP PTGX PVAC RCUS REAL REZI RKT RMBL RPAY RRGB RRR RVLV RVP RXN SANM SAVE SBGI SC SCPL SEAS SEM SFIX SFM SGMS SGRY SHLL SHOO SHYF SIX SKX SLQT SMCI SNAP SNDX SNV SONO SPAQ SPCE SPR SPWH SPWR SRG SRNE SSNT SSSS STOR SUM SUN SUPN SVMK SWBI SYF SYRS TBIO TCDA TCF TCRR TDC TEX TFFP TGTX THC TMHC TRGP TRIP TSE TUP TVTY UBX UCBI UCTT UFS UNFI UONE UPWK URBN USFD VCRA VERI VIAC VIRT VIVO VREX VSLR VSTO VXRT WAFD WBS WFC WHD WIFI WKHS WORK WORX WRK WRTC WW WWW WYND XEC XENT XPER XRX YELP ZGNX ZUMZ ZYXI'
words= s_l.split(" ")
num_of_100_groups = int(len(words) / 100)
groups = []
for i in range(0,num_of_100_groups):
groups.append(words[i * 100 : (i+1) * 100])
groups.append(words[num_of_100_groups * 100:])
for sub_group in groups:
print(' '.join(sub_group))

Python error: string indices must be integers

i need to write a small json data object with python, but when i use this, it don't work, what do i wrong?
This is for the newest version of Python
import urllib, json
import requests
import json
with open('locaties.json') as json_file:
data = json.load(json_file)
for parkeerlocaties in data['parkeerlocaties']:
for locatie in parkeerlocaties['parkeerlocatie']:
for title in locatie['title']:
print("Hello World")
{"parkeerlocaties":[{"parkeerlocatie":{"title":"Fietsenstalling Tolhuisplein","Locatie":"{\"type\":\"Point\",\"coordinates\":[4.9032801,52.3824545]}","type":"Fietspunt","url":"https:\/\/www.amsterdam.nl\/parkeren-verkeer\/fiets\/fietsparkeren\/gemeentelijke\/","urltitle":"www.amsterdam.nl\/fiets","adres":"Buiksloterweg 3","postcode":"1031 CC","woonplaats":"Amsterdam","opmerkingen":"Alleen toegankelijk voor abonnementhouders van Tolhuisplein, automatische stalling"}},{"parkeerlocatie":{"title":"Fietsenstalling Paradiso","Locatie":"{\"type\":\"Point\",\"coordinates\":[4.8833735,52.3621851]}","type":"Fietspunt","url":"https:\/\/www.amsterdam.nl\/parkeren-verkeer\/fiets\/fietsparkeren\/gemeentelijke\/","urltitle":"www.amsterdam.nl\/fiets","adres":"Weteringschans 4 A","postcode":"1017 SG","woonplaats":"Amsterdam","opmerkingen":"Maximale parkeerduur 28 dagen, stalling met toezicht"}},{"parkeerlocatie":{"title":"Fietsenstalling Zuidplein","Locatie":"{\"type\":\"Point\",\"coordinates\":[4.8719467,52.3398642]}","type":"Fietspunt","url":"https:\/\/www.amsterdam.nl\/parkeren-verkeer\/fiets\/fietsparkeren\/gemeentelijke\/","urltitle":"www.amsterdam.nl\/fiets","adres":"Zuidplein 5","postcode":"1077 XV","woonplaats":"Amsterdam","opmerkingen":"Maximale parkeerduur 28 dagen, stalling met toezicht"}},{"parkeerlocatie":{"title":"Fietsenstalling Station Rai (gesloten tot februari 2019)","Locatie":"{\"type\":\"Point\",\"coordinates\":[4.8905079,52.339392]}","type":"Fietspunt","url":"https:\/\/www.amsterdam.nl\/parkeren-verkeer\/fiets\/fietsparkeren\/gemeentelijke\/","urltitle":"www.amsterdam.nl\/fiets","adres":"Europaboulevard 4","postcode":"1083 AD","woonplaats":"Amsterdam","opmerkingen":"Sluit voor renovatie op 21 juli 2018. Er zijn rond het station extra parkeerplekken voor fiets gemaakt."}},{"parkeerlocatie":{"title":"P+R Zeeburg","Locatie":"{\"type\":\"Point\",\"coordinates\":[4.9607015,52.3719632]}","type":"P+R","url":"https:\/\/www.amsterdam.nl\/parkeren-verkeer\/parkeren-reizen\/#h4f9f93f8-875b-4d18-936a-c1eba9d6f198","urltitle":"www.amsterdam.nl\/penr ","adres":"Zuiderzeeweg 46 a","postcode":"1095KJ","woonplaats":"Amsterdam","opmerkingen":"","OV_bus":"bus 37 Noord - Amstelstation vv","OV_tram":"tram 26 Ijburg - Centraal Station vv","OV":"tram;GVB_26_1;08240, bus;GVB_37_2;08134"}},{"parkeerlocatie":{"title":"Weekend P+R VUmc","Locatie":"{\"type\":\"Point\",\"coordinates\":[4.8611063,52.3361167]}","type":"P+R","url":"https:\/\/www.amsterdam.nl\/parkeren-verkeer\/parkeren-reizen\/#hdce18cfd-fc8f-4728-be57-2d9a23b494d9","urltitle":"www.amsterdam.nl\/penr","adres":"Gustav Mahlerlaan 3004","postcode":"1081 LA","woonplaats":"Amsterdam","opmerkingen":"","OV_metro":"metro 51 Isolatorweg - Centraal Station vv (maart 2019 t\/m eind 2020), metro 50 met overstap Overamstel op 51 Centraal Station","OV_tram":"tram 24 VU medisch centrum - Centraal Station vv, tram 5 Amstelveen - Van Hallstraat vv","OV":"metro;GVB_50_1;07343;09563, tram;GVB_24_1;07350, tram;GVB_5_1;07410"}},{"parkeerlocatie":{"title":"P+R Bos en Lommer","Locatie":"{\"type\":\"Point\",\"coordinates\":[4.8453671,52.379131]}","type":"P+R","url":"https:\/\/www.amsterdam.nl\/parkeren-verkeer\/parkeren-reizen\/#h9434503d-d323-4331-b792-5210ce062c42","urltitle":"www.amsterdam.nl\/penr ","adres":"Leeuwendalersweg 23 b","postcode":"1055JE","woonplaats":"Amsterdam","opmerkingen":"","OV_bus":"bus 21 Geuzenveld - Centraal Station vv","OV_tram":"tram 7 Slotermeer - Azartplein vv","OV":"bus;GVB_21_1;03060, tram;GVB_7_1;03167"}},{"parkeerlocatie":{"title":"P+R Sloterdijk","Locatie":"{\"type\":\"Point\",\"coordinates\":[4.8384209,52.3900128]}","type":"P+R","url":"https:\/\/www.amsterdam.nl\/parkeren-verkeer\/parkeren-reizen\/#h628fb483-dec3-4a9d-9d52-50136e9639ec","urltitle":"www.amsterdam.nl\/penr","adres":"Piarcoplein 1","postcode":"1043DW","woonplaats":"Amsterdam","opmerkingen":"","OV_bus":"bus 22 Station Sloterdijk - Muiderpoortstation vv","OV_metro":"metro 50 Isolatorweg - Gein vv, overstap 51 op Station Zuid \/ Station RAI \/ Overamstel","OV_tram":"tram 19 Station Sloterdijk - Diemen vv","OV_trein":"Treinen tussen station Sloterdijk en de stations CS, Muiderpoort en Amstel (GVB P+R-kaart niet geldig)","OV":"tram;GVB_19_1;02361;00014, metro;GVB_50_1;02295;09563, metro;GVB_51_1;*09563, bus;GVB_22_1;02367;00001"}},{"parkeerlocatie":{"title":"P+R Olympisch Stadion","Locatie":"{\"type\":\"Point\",\"coordinates\":[4.8539215,52.3440266]}","type":"P+R","url":"https:\/\/www.amsterdam.nl\/parkeren-verkeer\/parkeren-reizen\/#h4567b083-9fea-4848-882a-280b6abc7853","urltitle":"www.amsterdam.nl\/penr ","adres":"Olympisch Stadion 44","postcode":"1076DE","woonplaats":"Amsterdam","opmerkingen":"","OV_tram":"tram 24 VU medisch centrum - Centraal Station vv","OV":"tram;GVB_24_1;07121"}},{"parkeerlocatie":{"title":"P+R Johan Cruijff ArenA","Locatie":"{\"type\":\"Point\",\"coordinates\":[4.9405734,52.3137551]}","type":"P+R","url":"https:\/\/www.amsterdam.nl\/parkeren-verkeer\/parkeren-reizen\/#h1dfa5189-98e8-42ce-8119-ce74f2451969","urltitle":"www.amsterdam.nl\/penr","adres":"Burgemeester Stramanweg 130","postcode":"1101EP","woonplaats":"Amsterdam","opmerkingen":"","OV_metro":"metro 54 Gein - Centraal Station vv","OV_trein":"Treinen tussen station Bijlmer Arena en stations Amstel, Muiderpoort en Centraal Station (GVB P+R-kaart niet geldig)","OV":"metro;GVB_54_1;09522"}},{"parkeerlocatie":{"title":"Amsterdamse Poort (P21 t\/m 24)","Locatie":"{\"type\":\"Point\",\"coordinates\":[4.9626214,52.3192019]}","type":"CommercieleParkeergarage","url":"https:\/\/www.q-park.nl\/nl-nl\/parkeren\/amsterdam\/amsterdamse-poort-p21\/","urltitle":"Amsterdamse Poort P21","adres":"Bijlmerdreef 700","postcode":"1103DS","woonplaats":"Amsterdam","opmerkingen":""}},{"parkeerlocatie":{"title":"P18 HES\/ ROC","Locatie":"{\"type\":\"Point\",\"coordinates\":[4.9466199,52.3152543]}","type":"Parkeergarage","url":"https:\/\/www.amsterdam.nl\/parkeren-verkeer\/parkeergarages\/parkeergarages\/garage-p18-hes-roc\/","urltitle":"Bekijk P18 HES\/ ROC op www.amsterdam.nl\/parkeergarages","adres":"Fraijlemaborg 131","postcode":"1102CV","woonplaats":"Amsterdam","opmerkingen":""}},{"parkeerlocatie":{"title":"P1 ArenA","Locatie":"{\"type\":\"Point\",\"coordinates\":[4.9405851,52.3137433]}","type":"Parkeergarage","url":"https:\/\/www.amsterdam.nl\/parkeren-verkeer\/parkeergarages\/parkeergarages\/parkeergarage-p1\/","urltitle":"Bekijk P1 ArenA op www.amsterdam.nl\/parkeergarages","adres":"Burgemeester Stramanweg 130","postcode":"1101EP","woonplaats":"Amsterdam","opmerkingen":""}},{"parkeerlocatie":{"title":"P10 Plaza ArenA","Locatie":"{\"type\":\"Point\",\"coordinates\":[4.9409531,52.3080762]}","type":"Parkeergarage","url":"https:\/\/www.amsterdam.nl\/parkeren-verkeer\/parkeergarages\/parkeergarages\/p10-plaza-arena\/","urltitle":"Bekijk P10 Plaza ArenA op www.amsterdam.nl\/parkeergarages","adres":"Herikerbergweg 288","postcode":"1101CT","woonplaats":"Amsterdam","opmerkingen":""}},{"parkeerlocatie":{"title":"P 3 Mikado","Locatie":"{\"type\":\"Point\",\"coordinates\":[4.9413266,52.3103066]}","type":"Parkeergarage","url":"https:\/\/www.amsterdam.nl\/parkeren-verkeer\/parkeergarages\/parkeergarages\/garage-p3-mikado\/","urltitle":"Bekijk P3 Mikado op www.amsterdam.nl\/parkeergarages","adres":"De entree 228","postcode":"1101EE","woonplaats":"Amsterdam","opmerkingen":""}},{"parkeerlocatie":{"title":"RAI Parking","Locatie":"{\"type\":\"Point\",\"coordinates\":[4.8921615,52.3383996]}","type":"CommercieleParkeergarage","url":"https:\/\/www.rai.nl\/nl\/contact-bereikbaarheid-en-parkeren\/parkeren-bij-rai-amsterdam\/","urltitle":"Rai Parking","adres":"Europaboulevard 24","postcode":"1078GZ","woonplaats":"Amsterdam","opmerkingen":""}},{"parkeerlocatie":{"title":"Qpark Eurocenter","Locatie":"{\"type\":\"Point\",\"coordinates\":[4.8888094,52.3358123]}","type":"CommercieleParkeergarage","url":"https:\/\/www.q-park.nl\/nl-nl\/parkeren\/amsterdam\/eurocenter\/","urltitle":"Qpark Eurocenter ","adres":"Barbara Strozzilaan 342","postcode":"1083HN","woonplaats":"Amsterdam","opmerkingen":""}},{"parkeerlocatie":{"title":"Qpark Mahler","Locatie":"{\"type\":\"Point\",\"coordinates\":[4.8723915,52.3377672]}","type":"CommercieleParkeergarage","url":"https:\/\/www.q-park.nl\/nl-nl\/parkeren\/amsterdam\/mahler\/","urltitle":"Qpark Mahler","adres":"Claude Debussylaan 42","postcode":"1082MD","woonplaats":"Amsterdam","opmerkingen":""}},{"parkeerlocatie":{"title":"Olympisch Stadion","Locatie":"{\"type\":\"Point\",\"coordinates\":[4.8539215,52.3440266]}","type":"CommercieleParkeergarage","url":"http:\/\/www.p1.nl\/parkeren\/parkeergarage-olympisch-stadion\/","urltitle":"P1 Parkeergarage Olympisch Stadion ","adres":"Olympisch Stadion 44","postcode":"1076DE","woonplaats":"Amsterdam","opmerkingen":""}},{"parkeerlocatie":{"title":"Interparking Oranjekwartier Amsterdam","Locatie":"{\"type\":\"Point\",\"coordinates\":[4.839149,52.3546448]}","type":"CommercieleParkeergarage","url":"http:\/\/www.interparking.nl\/nl-NL\/find-parking\/Oranjekwartier\/","urltitle":"Interparking Oranjekwartier Amsterdam","adres":"Carnapstraat 200","postcode":"1062KZ","woonplaats":"Amsterdam","opmerkingen":""}},{"parkeerlocatie":{"title":"Bomengarage P2 (Boven 't IJ) ","Locatie":"{\"type\":\"Point\",\"coordinates\":[4.9388323,52.3994577]}","type":"Parkeergarage","url":"https:\/\/www.amsterdam.nl\/parkeren-verkeer\/parkeergarages\/parkeergarages\/garage-p2bomengarage\/","urltitle":"Bekijk Bomengarage P2 op www.amsterdam.nl\/parkeergarages","adres":"Buikslotermeerplein 237","postcode":"1025 XB","woonplaats":"Amsterdam","opmerkingen":""}},{"parkeerlocatie":{"title":"Qpark Westergasfabriek","Locatie":"{\"type\":\"Point\",\"coordinates\":[4.8662388,52.3847072]}","type":"CommercieleParkeergarage","url":"https:\/\/www.q-park.nl\/nl-nl\/parkeren\/amsterdam\/westergasfabriek\/","urltitle":"Qpark Amsterdam Westergasfabriek","adres":"Van Bleiswijkstraat 8","postcode":"1051DG","woonplaats":"Amsterdam","opmerkingen":""}},{"parkeerlocatie":{"title":"Qpark Europarking","Locatie":"{\"type\":\"Point\",\"coordinates\":[4.8766781,52.3699218]}","type":"CommercieleParkeergarage","url":"https:\/\/www.q-park.nl\/nl-nl\/parkeren\/amsterdam\/europarking\/","urltitle":"Qpark Europarking","adres":"Marnixstraat 250","postcode":"1016TL","woonplaats":"Amsterdam","opmerkingen":""}},{"parkeerlocatie":{"title":"Qpark Byzantium","Locatie":"{\"type\":\"Point\",\"coordinates\":[4.8793897,52.3618422]}","type":"CommercieleParkeergarage","url":"https:\/\/www.q-park.nl\/nl-nl\/parkeren\/amsterdam\/byzantium\/","urltitle":"Qpark Amsterdam Byzantium","adres":"Tesselschadestraat 1","postcode":"1054ET","woonplaats":"Amsterdam","opmerkingen":""}},{"parkeerlocatie":{"title":"Piet Heingarage","Locatie":"{\"type\":\"Point\",\"coordinates\":[4.9173751,52.3773883]}","type":"Parkeergarage","url":"https:\/\/www.amsterdam.nl\/parkeren-verkeer\/parkeergarages\/parkeergarages\/parkeergarage-piet\/","urltitle":"Bekijk Piet Heingarage op www.amsterdam.nl\/parkeergarages","adres":"Piet Heinkade 59","postcode":"1019GM","woonplaats":"Amsterdam","opmerkingen":""}},{"parkeerlocatie":{"title":"Parking Centrum Oosterdok","Locatie":"{\"type\":\"Point\",\"coordinates\":[4.9092051,52.3761913]}","type":"CommercieleParkeergarage","url":"http:\/\/www.parkingcentrumoosterdok.nl\/","urltitle":"Parking Centrum Oosterdok","adres":"Oosterdoksstraat 150","postcode":"1011AD","woonplaats":"Amsterdam","opmerkingen":""}},{"parkeerlocatie":{"title":"Markenhoven","Locatie":"{\"type\":\"Point\",\"coordinates\":[4.908618,52.3696328]}","type":"Parkeergarage","url":"https:\/\/www.amsterdam.nl\/parkeren-verkeer\/parkeergarages\/parkeergarages\/garage-markenhoven\/","urltitle":"Bekijk Markenhoven op www.amsterdam.nl\/parkeergarages","adres":"Anne Frankstraat 220","postcode":"1011 MP","woonplaats":"Amsterdam","opmerkingen":""}},{"parkeerlocatie":{"title":"(P1) Parking Waterlooplein","Locatie":"{\"type\":\"Point\",\"coordinates\":[4.9043352,52.3689665]}","type":"CommercieleParkeergarage","url":"http:\/\/www.parkereninwaterlooplein.nl\/","urltitle":"Parkeergarage Waterlooplein ","adres":"Valkenburgerstraat 238","postcode":"1011ND","woonplaats":"Amsterdam","opmerkingen":""}},{"parkeerlocatie":{"title":"Stadhuis - Muziektheater","Locatie":"{\"type\":\"Point\",\"coordinates\":[4.9018035,52.3670615]}","type":"Parkeergarage","url":"https:\/\/www.amsterdam.nl\/parkeren-verkeer\/parkeergarages\/parkeergarages\/garage-stadhuis\/","urltitle":" Bekijk Stadhuis-Muziektheater op www.amsterdam.nl\/parkeergarages","adres":"Waterlooplein 28","postcode":"1011PG","woonplaats":"Amsterdam","opmerkingen":""}},{"parkeerlocatie":{"title":"Parkeergarage Prins & Keizer","Locatie":"{\"type\":\"Point\",\"coordinates\":[4.891798,52.3622906]}","type":"CommercieleParkeergarage","url":"http:\/\/www.apcoa.nl\/parkeren-in\/amsterdam\/apcoa-parking-prins-keizer.html","urltitle":"Apcoa Parking Prins & Keizer","adres":"Prinsengracht 927","postcode":"1017HL","woonplaats":"Amsterdam","aantal":"140","opmerkingen":""}},{"parkeerlocatie":{"title":"Qpark De Bijenkorf","Locatie":"{\"type\":\"Point\",\"coordinates\":[4.895162,52.373881]}","type":"CommercieleParkeergarage","url":"https:\/\/www.q-park.nl\/nl-nl\/parkeren\/amsterdam\/de-bijenkorf\/","urltitle":"Qpark De Bijenkorf","adres":"Beursplein 15","postcode":"1012JW","woonplaats":"Amsterdam","opmerkingen":""}},{"parkeerlocatie":{"title":"Qpark Nieuwendijk","Locatie":"{\"type\":\"Point\",\"coordinates\":[4.8944693,52.3764423]}","type":"CommercieleParkeergarage","url":"https:\/\/www.q-park.nl\/nl-nl\/parkeren\/amsterdam\/nieuwendijk\/","urltitle":"Qpark Nieuwendijk","adres":"Nieuwezijds Kolk 18","postcode":"1012PV","woonplaats":"Amsterdam","opmerkingen":""}},{"parkeerlocatie":{"title":"(P1) Parking Amsterdam Centre","Locatie":"{\"type\":\"Point\",\"coordinates\":[4.8970068,52.3785141]}","type":"CommercieleParkeergarage","url":"http:\/\/www.p1.nl\/parkeren\/p1-parking-amsterdam-centre\/","urltitle":"P1 Parking Amsterdam Centre ","adres":"Prins Hendrikkade 20 a","postcode":"1012TL","woonplaats":"Amsterdam","opmerkingen":""}},{"parkeerlocatie":{"title":"Parkeergarage Apcoa Heinekenplein","Locatie":"{\"type\":\"Point\",\"coordinates\":[4.8924871,52.3571537]}","type":"CommercieleParkeergarage","url":"http:\/\/www.apcoa.nl\/parkeren-in\/amsterdam\/apcoa-parking-heinekenplein.html","urltitle":"Apcoa garage Heinekenplein ","adres":"Eerste Van der Helststraat 6","postcode":"1072NV","woonplaats":"Amsterdam","opmerkingen":""}},{"parkeerlocatie":{"title":"Qpark Museumplein","Locatie":"{\"type\":\"Point\",\"coordinates\":[4.8798246,52.3571347]}","type":"CommercieleParkeergarage","url":"https:\/\/www.q-park.nl\/nl-nl\/parkeren\/amsterdam\/museumplein\/","urltitle":"Qpark Museumplein ","adres":"Van Baerlestraat 33 B","postcode":"1071AP","woonplaats":"Amsterdam","opmerkingen":""}},{"parkeerlocatie":{"title":"P4 en P5 Villa ArenA","Locatie":"{\"type\":\"Point\",\"coordinates\":[4.9389632,52.3118578]}","type":"Parkeergarage","url":"https:\/\/www.amsterdam.nl\/parkeren-verkeer\/parkeergarages\/parkeergarages\/","urltitle":"Bekijk P4 en P5 Villa ArenA op www.amsterdam.nl\/parkeergarages ","adres":"De entree 7","postcode":"1101BH","woonplaats":"Amsterdam","opmerkingen":""}},{"parkeerlocatie":{"title":"P4 en P5 Villa ArenA","Locatie":"{\"type\":\"Point\",\"coordinates\":[4.9389632,52.3118578]}","type":"Parkeergarage","url":"https:\/\/www.amsterdam.nl\/parkeren-verkeer\/parkeergarages\/parkeergarages\/","urltitle":"Bekijk P4 en P5 Villa ArenA op www.amsterdam.nl\/parkeergarages","adres":"De entree 7","postcode":"1101BH","woonplaats":"Amsterdam","opmerkingen":""}}
The current error message is "TypeError: string indices must be integers" but i think it should give all the titles of the parkeerlocatie.
parkeerlocaties['parkeerlocatie'] is not a list, it's a dictionary. You should use parkeerlocaties['parkeerlocaties']['title']. And the title is a string, there's no reason to iterate over it (unless you want to process it character by character for some reason).
with open('locaties.json') as json_file:
data = json.load(json_file)
for parkeerlocaties in data['parkeerlocaties']:
print('Title: ', parkeerlocaties['parkeerlocaties']['title'])
>>> type(data)
<type 'dict'>
>>> data['parkeerlocaties']
<type 'list'>
So the code could be
import urllib, json
import requests
import json
with open('locaties.json') as json_file:
data = json.load(json_file)
parkeerlocaties = data['parkeerlocaties']
for parkeerlocatie in parkeerlocaties:
print(parkeerlocatie['parkeerlocatie']['title'])

How to extract data between same html tags

I would like to split the html file (it is Pali - Czech dictionary) and extract data into array or dictionary in Python:
the term (pink)
<p class="calibre_"><span class="bold"> TERM1 </span>
definition (yellow)
...TERM1 </span>(→<span class="italic"> TEXT</span>).</p>
<p class="calibre_"><span class="bold">TERM2....
The definition text is sometimes tricky and it can contains multiple paragraphs and new lines. Therefore I found the safest option to extract the text starting from the closing tag of the term until beginning tag of the new term.
PREVIEW OF THE DATA:
RAW HTML DATA: https://pastebin.com/FypTPnLc
I cannot succeed with extraction of the data. I have tried text.split approach and regex but I cannot find the solution to this problem. I would like to ask what is best approach to extract data from this html?
This will extract data to list, where each item in list is the [term, definition]:
data = """
<p class="calibre_"><span class="bold">di­b­ba-čak­khu</span> (di­bba­cak­khu): ,bož­ský zrak‘ (dosl. ,bož­ské oko‘), je jed­nou ze šes­ti vyš­ších schop­nos­tí (→ <span class="italic">ab­hi­ň­ňá</span>) a jed­ním ze tří dru­hů vě­dě­ní (→ <span class="italic">té­vi­dždžá</span>).</p>
<p class="calibre_"><span class="bold">di­b­ba-lóka</span> (di­bba­lo­ka): ne­beský svět; →<span class="italic"> déva</span>.<br class="calibre2"/>
<span class="bold">di­b­ba-sóta</span> (di­bba­so­ta): ,bož­ský sluch‘, je jed­nou z šes­ti vyš­ších schop­nos­tí (→ <span class="italic">ab­hi­ň­ňá</span>). </p>
<p class="calibre_"><span class="bold">di­b­ba-vi­há­ra</span> (di­bba­vi­hā­ra): →<span class="italic"> vi­há­ra</span>.<br class="calibre2"/>
<span class="bold">dis­ci­plí­na</span> (eti­ka): →<span class="italic"> síla</span>.</p>
<p class="calibre_"><span class="bold">dit­tha-dha­m­ma-véda­ní­ja-ka­m­ma</span> (diṭṭhad­ha­m­ma­ve­da­nīyaka­m­ma): kar­ma, kte­rá při­ná­ší plo­dy ješ­tě v tom­to ži­vo­tě; →<span class="italic"> kar­ma</span>. </p>
<p class="calibre_"><span class="bold">dit­thi</span> (diṭṭhi): ,ná­zor‘ či ,pře­svěd­če­ní‘ (dosl. ,vi­dě­ní‘, od ko­ře­ne <span class="italic">dis</span> − ,vi­dět‘). Když není ve spo­je­ní s vý­ra­zem <span class="italic">sa­m­má </span>(správ­ný), od­ka­zu­je vět­ši­nou k ne­správ­né­mu či ne­pro­spěš­né­mu ná­zo­ru a jen v ně­ko­li­ka málo pří­pa­dech ke správ­né­mu ná­zo­ru, po­cho­pe­ní či vhle­du (na­pří­klad →<span class="italic"> dit­thip­pat­ta</span>; <span class="italic">dit­thi-vi­sudd­hi</span> − očiš­tě­ní ná­zo­ru; <span class="italic">dit­thi-sam­pan­na</span> − ob­da­ře­ný vhle­dem).</p>
<p class="calibre_"> Ne­pro­spěš­né či ne­správ­né ná­zo­ry (<span class="italic">dit­thi</span> či<span class="italic"> miččhá-dit­thi</span>) jsou pro­hlá­še­ny za zce­la za­vr­že­ní­hod­né, ne­boť jsou zdro­jem špat­ných cílů a jed­ná­ní a mo<br class="calibre2"/> dit­thi dit­thi<br class="calibre2"/> hou člo­vě­ka ča­sem za­vést do nej­hlub­ších pro­pas­tí mrav­ní zká­zy, jak se uvá­dí v A. I, 22: </p>
<p class="calibre_">„Mni­ši, jsou to pře­de­vším ne­správ­né ná­zo­ry, kvů­li kte­rým vzni­ka­jí v ta­ko­vém roz­sa­hu do­sud ne­vznik­lé ne­pro­spěš­né věci a již vznik­lé ne­pro­spěš­né věci sílí a na­pl­ňu­jí se. Jsou to pře­de­vším ne­správ­né ná­zo­ry, kvů­li kte­rým je v ta­ko­vém roz­sa­hu za­bra­ňo­vá­no vzni­ku do­sud ne­vznik­lých pro­spěš­ných věcí a již vznik­lé pro­spěš­né věci mizí. Jsou to pře­de­vším ne­správ­né ná­zo­ry, kvů­li kte­rým lid­ské by­tos­ti po roz­pa­du těla, po smr­ti, na­stu­pu­jí v ta­ko­vém roz­sa­hu ces­tu utr­pe­ní, ces­tu do svě­ta bídy a do pek­la.“ Dále se uvá­dí v A. I, 23: „Co­ko­li člo­věk s ne­správ­ným ná­zo­rem dělá či pod­stu­pu­je nebo ať má ja­ké­ko­li zá­mě­ry, cíle, tou­hy či sklo­ny, všech­ny tyto věci ho ve­dou k ne­žá­dou­cím, ne­pří­jem­ným a ne­pří­z­ni­vým sta­vům, k bídě a utr­pe­ní.“</p>
<p class="calibre_">Z ab­hid­ha­mmy (Dhs.) lze vy­vo­dit, že ne­správ­né ná­zo­ry, ať vzni­ka­jí kde­ko­li, jsou vždy spo­je­ny s chti­vos­tí (→ Tab. I, 22−23, 26−27).<br class="calibre2"/> V sut­tách je uve­de­no mno­ho spe­ku­la­tiv­ních ná­zo­rů a te­o­rií, kte­ré vždy ovliv­ňo­va­ly a stá­le ovliv­ňu­jí lid­stvo. Mezi nimi je to ale pře­de­vším ne­správ­né pře­svěd­če­ní o osob­nos­ti, ná­zor o ,já‘, kte­rý lidi vždy a všu­de za­vá­děl a ple­tl nej­ví­ce. Toto pře­svěd­če­ní o osob­nos­ti (<span class="italic">sak­ká­ja-dit­thi</span>) či ná­zor o ,já‘ (<span class="italic">atta-dit­thi</span>) je dvo­jí­ho dru­hu − pře­svěd­če­ní o věč­ném tr­vá­ní a pře­svěd­če­ní o zá­ni­ku.<br class="calibre2"/> Ná­zor o věč­ném tr­vá­ní čili eter­na­lis­mus (<span class="italic">sassa­ta-dit­thi</span>) je pře­svěd­če­ním o exis­ten­ci ,já‘, duše či osob­nos­ti ja­kož­to pře­tr­vá­va­jí­cí en­ti­ty, kte­rá exis­tu­je ne­zá­vis­le na tě­les­ných a men­tál­ních pro­ce­sech utvá­ře­jí­cích ži­vot a kte­rá po­kra­ču­je i po smr­ti. <br class="calibre2"/> Ná­zor o zni­če­ní (<span class="italic">uččhéda-dit­thi</span>) je na dru­hé stra­ně pře­svěd­če­ní o exis­ten­ci ,já‘ či osob­nos­ti ja­kož­to en­ti­ty, kte­rá je ví­ce­mé­ně to­tož­ná s oně­mi tě­les­ný­mi a men­tál­ní­mi pro­ce­sy a kte­rá pro­to za­nik­ne roz­pa­dem při smr­ti. Dva­cet dru­hů ná­zo­rů o osob­nos­ti →<span class="italic"> sak­ká­ja-dit­thi</span>.<br class="calibre2"/> Buddha ne­u­čil ani o osob­nos­ti, kte­rá pře­tr­vá­vá po smr­ti, ani o osob­nos­ti, kte­rá za­nik­ne smr­tí, ale uka­zo­val, že osob­nost, ego, jed­not­li­vec, člo­věk atd. nejsou nic ji­né­ho než pou­hé kon­venč­ní vý­ra­zy (<span class="italic">vó­há­ra-va­ča­na</span>) a že v ab­so­lut­ním smys­lu (→<span class="italic"> pa­ra­mattha-sač­ča</span>) exis­tu­je pou­ze se­bestra­vu­jí­cí pro­ces tě­les­ných a men­tál­ních jevů, kte­ré stá­le zno­vu vzni­ka­jí a hned zase mizí. Dal­ší po­drob­nos­ti →<span class="italic"> anat­tá</span>, <span class="italic">khand­ha</span>, <span class="italic">pa­tič­ča-sa­mup­pá­da</span>. <br class="calibre2"/> „Do­ko­na­lý je osvo­bo­zen od všech ná­zo­rů (<span class="italic">dit­thi-gata</span>), pro­to­že pro­hlé­dl, co je tě­les­nost a jak vzni­ká a za­ni­ká. Pro­hlé­dl, co jsou po­ci­ťo­vá­ní … vní­má­ní … men­tál­ní for­ma­ce … vě­do­mí … a jak vzni­ka­jí a za­ni­ka­jí. Pro­to ří­kám, že Do­ko­na­lý do­sá­hl úpl­né­ho osvo­bo­ze­ní díky ustá­ní, za­ne­chá­ní, vy­mi­ze­ní, od­mít­nu­tí a za­pu­ze­ní všech před­stav a do­mně­nek, všech sklo­nů k mar­né slá­vě ,já‘ a ,mého‘“ (M. 72).</p>
<p class="calibre_"> dit­thi­nis­si­ta­sí­la dit­thi­nis­si­ta­sí­la<br class="calibre2"/> Od­mít­nu­tí spe­ku­la­tiv­ních ná­zo­rů a te­o­rií je ústřed­ním té­ma­tem ka­pi­to­ly <span class="italic">Atthaka-vag­ga</span> ze <span class="italic">Sut­ta-ni­pá­ty</span>. </p>
<p class="calibre_">Tzv. ,ne­správ­né ná­zo­ry s ne­zvrat­ný­mi ná­sled­ky‘ ( <span class="italic">ni­ja­ta-miččhá-dit­thi</span>), tvo­ří­cí po­sled­ní z de­se­ti ne­pro­spěš­ných způ­sobů jed­ná­ní (→<span class="italic"> ka­m­ma-patha</span>), jsou tyto tři:</p>
<p class="calibre_">1. Fa­ta­lis­tic­ké ,pře­svěd­če­ní o bez­pří­čin­nos­ti‘ exis­ten­ce ( <span class="italic">ahétu­ka-dit­thi</span>) hlá­sa­né Budd­ho­vým sou­čas­ní­kem, Mak­kha­lim Gó­sá­lou, kte­rý od­mí­tal veš­ke­ré pří­či­ny zka­že­nos­ti a čis­to­ty by­tos­tí a tvr­dil, že vše je zce­la před­ur­če­no osu­dem.</p>
<p class="calibre_">2. ,Pře­svěd­če­ní o ne­ú­čin­nos­ti jed­ná­ní‘ ( <span class="italic">aki­ri­ja-dit­thi</span>) hlá­sa­né dal­ším Budd­ho­vým sou­čas­ní­kem, Púra­nou Kassa­pou, kte­rý po­pí­ral veš­ke­ré kar­mic­ké účin­ky dob­ré­ho a špat­né­ho jed­ná­ní: „Tomu, kdo za­bí­jí, kra­de, lou­pí atd., se nic zlé­ho ne­sta­ne. Za štěd­rost, se­be­o­vlá­dá­ní a prav­di­vost nelze oče­ká­vat žád­nou od­mě­nu.“ </p>
<p class="calibre_">3. Ni­hi­lis­mus ( <span class="italic">natthi­ka-dit­thi</span>) hlá­sa­ný tře­tím Budd­ho­vým sou­čas­ní­kem, Adži­tou Késakam­ba­lim, kte­rý tvr­dil, že kaž­dé pře­svěd­če­ní o dob­rém jed­ná­ní a jeho od­mě­ně je jen kla­mem, že po smr­ti není žád­ný dal­ší ži­vot a že se člo­věk po smr­ti roz­pad­ne na prv­ky atd.</p>
<p class="calibre_"> Dal­ší po­drob­nos­ti o těch­to třech ná­zo­rech viz D. 2; M. 60; ko­men­tá­řo­vý vý­klad ve Whe­el 98/99, str. 23. </p>
<p class="calibre_">Čas­to se také uvá­dí de­set an­ti­no­mií (= pro­ti­chůd­ných ná­zo­rů; <span class="italic">an­ta­gáhi­ká miččhá-dit­thi</span>), na­pří­klad: „svět je ko­neč­ný“ a „svět je ne­ko­neč­ný“ … „tělo a duše jsou to­tož­né“ a „tělo a duše jsou od­liš­né“ (na­pří­klad M. 63).</p>
<p class="calibre_">V <span class="italic"> Brahmadžá­la-sut­tě</span> (D.1) je roz­tří­dě­no a po­psá­no še­de­sát dva ne­správ­ných ná­zo­rů, kte­ré shr­nu­jí všech­ny mož­né ne­správ­né ná­zo­ry a spe­ku­la­ce o člo­vě­ku a svě­tě. Viz Bhik­khu Bod­hi: <span class="italic">The All-Em­bra­cing Net of Views</span> (<span class="italic">Brahmadžá­la-sut­ta</span> a ko­men­tář), BPS. Dále viz D. 15, 23, 24, 28; M. 11−12, 25, 60, 63, 72, 76, 101−102, 110; A. II, 16; A. X, 93; S. XXI, XXIV; Pts.M. (<span class="italic">Dit­thi-kathá</span>) atd.</p>
"""
from bs4 import BeautifulSoup
from pprint import pprint
data = data.replace('\xad', '') # remove soft-hyphens
soup = BeautifulSoup(data, 'lxml')
result = []
for span in soup.select('p > span.bold'):
result.append([span.text, span.parent.text.replace(span.text, '').strip()])
for p in span.parent.select('~ p'):
if p.select('span.bold'):
break
result[-1][-1] += '\n' + p.text
pprint(result)
Output:
[['dibba-čakkhu',
'(dibbacakkhu): ,božský zrak‘ (dosl. ,božské oko‘), je jednou ze šesti '
'vyšších schopností (→ abhiňňá) a jedním ze tří druhů vědění (→ tévidždžá).'],
['dibba-lóka',
'(dibbaloka): nebeský svět; → déva.\n'
'dibba-sóta (dibbasota): ,božský sluch‘, je jednou z šesti vyšších '
'schopností (→ abhiňňá).'],
['dibba-sóta',
'dibba-lóka (dibbaloka): nebeský svět; → déva.\n'
' (dibbasota): ,božský sluch‘, je jednou z šesti vyšších schopností (→ '
'abhiňňá).'],
['dibba-vihára', '(dibbavihāra): → vihára.\ndisciplína (etika): → síla.'],
['disciplína', 'dibba-vihára (dibbavihāra): → vihára.\n (etika): → síla.'],
['dittha-dhamma-védaníja-kamma',
'(diṭṭhadhammavedanīyakamma): karma, která přináší plody ještě v tomto '
'životě; → karma.'],
['ditthi',
'(diṭṭhi): ,názor‘ či ,přesvědčení‘ (dosl. ,vidění‘, od kořene dis − '
',vidět‘). Když není ve spojení s výrazem sammá (správný), odkazuje většinou '
'k nesprávnému či neprospěšnému názoru a jen v několika málo případech ke '
'správnému názoru, pochopení či vhledu (například → ppatta; -visuddhi − '
'očištění názoru; -sampanna − obdařený vhledem).\n'
' Neprospěšné či nesprávné názory (ditthi či miččhá-ditthi) jsou prohlášeny '
'za zcela zavrženíhodné, neboť jsou zdrojem špatných cílů a jednání a mo '
'ditthi ditthi hou člověka časem zavést do nejhlubších propastí mravní '
'zkázy, jak se uvádí v A. I, 22: \n'
'„Mniši, jsou to především nesprávné názory, kvůli kterým vznikají v takovém '
'rozsahu dosud nevzniklé neprospěšné věci a již vzniklé neprospěšné věci '
'sílí a naplňují se. Jsou to především nesprávné názory, kvůli kterým je v '
'takovém rozsahu zabraňováno vzniku dosud nevzniklých prospěšných věcí a již '
'vzniklé prospěšné věci mizí. Jsou to především nesprávné názory, kvůli '
'kterým lidské bytosti po rozpadu těla, po smrti, nastupují v takovém '
'rozsahu cestu utrpení, cestu do světa bídy a do pekla.“ Dále se uvádí v A. '
'I, 23: „Cokoli člověk s nesprávným názorem dělá či podstupuje nebo ať má '
'jakékoli záměry, cíle, touhy či sklony, všechny tyto věci ho vedou k '
'nežádoucím, nepříjemným a nepříznivým stavům, k bídě a utrpení.“\n'
'Z abhidhammy (Dhs.) lze vyvodit, že nesprávné názory, ať vznikají kdekoli, '
'jsou vždy spojeny s chtivostí (→ Tab. I, 22−23, 26−27). V suttách je '
'uvedeno mnoho spekulativních názorů a teorií, které vždy ovlivňovaly a '
'stále ovlivňují lidstvo. Mezi nimi je to ale především nesprávné '
'přesvědčení o osobnosti, názor o ,já‘, který lidi vždy a všude zaváděl a '
'pletl nejvíce. Toto přesvědčení o osobnosti (sakkája-ditthi) či názor o '
',já‘ (atta-ditthi) je dvojího druhu − přesvědčení o věčném trvání a '
'přesvědčení o zániku. Názor o věčném trvání čili eternalismus '
'(sassata-ditthi) je přesvědčením o existenci ,já‘, duše či osobnosti '
'jakožto přetrvávající entity, která existuje nezávisle na tělesných a '
'mentálních procesech utvářejících život a která pokračuje i po smrti. '
'Názor o zničení (uččhéda-ditthi) je na druhé straně přesvědčení o existenci '
',já‘ či osobnosti jakožto entity, která je víceméně totožná s oněmi '
'tělesnými a mentálními procesy a která proto zanikne rozpadem při smrti. '
'Dvacet druhů názorů o osobnosti → sakkája-ditthi. Buddha neučil ani o '
'osobnosti, která přetrvává po smrti, ani o osobnosti, která zanikne smrtí, '
'ale ukazoval, že osobnost, ego, jednotlivec, člověk atd. nejsou nic jiného '
'než pouhé konvenční výrazy (vóhára-vačana) a že v absolutním smyslu (→ '
'paramattha-sačča) existuje pouze sebestravující proces tělesných a '
'mentálních jevů, které stále znovu vznikají a hned zase mizí. Další '
'podrobnosti → anattá, khandha, patičča-samuppáda. „Dokonalý je osvobozen '
'od všech názorů (ditthi-gata), protože prohlédl, co je tělesnost a jak '
'vzniká a zaniká. Prohlédl, co jsou pociťování … vnímání … mentální formace '
'… vědomí … a jak vznikají a zanikají. Proto říkám, že Dokonalý dosáhl '
'úplného osvobození díky ustání, zanechání, vymizení, odmítnutí a zapuzení '
'všech představ a domněnek, všech sklonů k marné slávě ,já‘ a ,mého‘“ (M. '
'72).\n'
' ditthinissitasíla ditthinissitasíla Odmítnutí spekulativních názorů a '
'teorií je ústředním tématem kapitoly Atthaka-vagga ze Sutta-nipáty. \n'
'Tzv. ,nesprávné názory s nezvratnými následky‘ ( nijata-miččhá-ditthi), '
'tvořící poslední z deseti neprospěšných způsobů jednání (→ kamma-patha), '
'jsou tyto tři:\n'
'1. Fatalistické ,přesvědčení o bezpříčinnosti‘ existence ( ahétuka-ditthi) '
'hlásané Buddhovým současníkem, Makkhalim Gósálou, který odmítal veškeré '
'příčiny zkaženosti a čistoty bytostí a tvrdil, že vše je zcela předurčeno '
'osudem.\n'
'2. ,Přesvědčení o neúčinnosti jednání‘ ( akirija-ditthi) hlásané dalším '
'Buddhovým současníkem, Púranou Kassapou, který popíral veškeré karmické '
'účinky dobrého a špatného jednání: „Tomu, kdo zabíjí, krade, loupí atd., se '
'nic zlého nestane. Za štědrost, sebeovládání a pravdivost nelze očekávat '
'žádnou odměnu.“ \n'
'3. Nihilismus ( natthika-ditthi) hlásaný třetím Buddhovým současníkem, '
'Adžitou Késakambalim, který tvrdil, že každé přesvědčení o dobrém jednání a '
'jeho odměně je jen klamem, že po smrti není žádný další život a že se '
'člověk po smrti rozpadne na prvky atd.\n'
' Další podrobnosti o těchto třech názorech viz D. 2; M. 60; komentářový '
'výklad ve Wheel 98/99, str. 23. \n'
'Často se také uvádí deset antinomií (= protichůdných názorů; antagáhiká '
'miččhá-ditthi), například: „svět je konečný“ a „svět je nekonečný“ … „tělo '
'a duše jsou totožné“ a „tělo a duše jsou odlišné“ (například M. 63).\n'
'V Brahmadžála-suttě (D.1) je roztříděno a popsáno šedesát dva nesprávných '
'názorů, které shrnují všechny možné nesprávné názory a spekulace o člověku '
'a světě. Viz Bhikkhu Bodhi: The All-Embracing Net of Views '
'(Brahmadžála-sutta a komentář), BPS. Dále viz D. 15, 23, 24, 28; M. 11−12, '
'25, 60, 63, 72, 76, 101−102, 110; A. II, 16; A. X, 93; S. XXI, XXIV; Pts.M. '
'(Ditthi-kathá) atd.']]

Categories