Zdravím všetkých.
Momentalne riešim problem zo stahovaním XML suboru z webovej lokality.
Doteraz som subor stahoval prostredníctvom requestu: urllib.request.urlretrieve avšak po zmene zabezpečenia servera z ktorého sa údaje prijímaju mi táto funkcia v Pythone nefunguje, subor sa teda nestiahne. Riešil takýto problém niekto? pozeral som už niečo aj na webe, dozvedel som sa že nie som jediný komu to nefunguje, niečo som poskúšal ale zatial bez výsledku. Python nie je moja šálka kávy....
V´daka za napady, tipy....
Stahovanie XML subor v Pythone
Moderátori: Drakoush, Moderátori
- Mek
- Zaslúžilý člen
- Príspevky: 1282
- Dátum registrácie: 15 Okt 2015, 20:49
- Bydlisko: Žilina
- Vek: 37
- Kontaktovať používateľa:
Re: Stahovanie XML subor v Pythone
Subor sa nestiahne, a kod pokracuje v behu, len odpoved zo servera je prazdny string? Alebo mas nejaku chybu/exception?
0
... byvaly spravca Hospudky u amplionu, Martinekk-ov brat. Nemam vystudovane elektro, je to len moje hobby. Povolanim som SW inzinier.
Moja databaza suciastok: ELPARTS
Moj velky elektro projekt: MEGA TRANSISTOR CLOCK
Moja databaza suciastok: ELPARTS
Moj velky elektro projekt: MEGA TRANSISTOR CLOCK
Re: Stahovanie XML subor v Pythone
Ahoj, Dik za reakciu.
momentalne to mám takto:
V nekonečnej slučke stahujem subor každe 2 sekundy cca
try:
urllib.request.urlretrieve(url,xmllocalfile)
except:
print("Chyba pri citani XML z webu")
nasledne overujem či tam subor je alebo nie a podla toho pokračuje program v parsovani.
if not os.path.isfile(xmllocalfile):
continue
try:
e = xml.etree.ElementTree.parse('zwebu.xml').getroot()
.....
lenže neskoči dalej lebo mi cez ten urllib.request.urlretrieve nestiahne to XMLko, takže to stale cykluje kazde 2s (pouzivam time.sleep funkciu v nekonečnej slučke) a snaži sa ho stiahnut....
momentalne to mám takto:
V nekonečnej slučke stahujem subor každe 2 sekundy cca
try:
urllib.request.urlretrieve(url,xmllocalfile)
except:
print("Chyba pri citani XML z webu")
nasledne overujem či tam subor je alebo nie a podla toho pokračuje program v parsovani.
if not os.path.isfile(xmllocalfile):
continue
try:
e = xml.etree.ElementTree.parse('zwebu.xml').getroot()
.....
lenže neskoči dalej lebo mi cez ten urllib.request.urlretrieve nestiahne to XMLko, takže to stale cykluje kazde 2s (pouzivam time.sleep funkciu v nekonečnej slučke) a snaži sa ho stiahnut....
0
Re: Stahovanie XML subor v Pythone
tak zistil som že mi stale vyhadzuje chybu overenia:
SSL: CERTIFICATE_VERIFY_FAILED ako v kniznici request.py tak aj v ssl.py
som v koncoch....
SSL: CERTIFICATE_VERIFY_FAILED ako v kniznici request.py tak aj v ssl.py
som v koncoch....
0
Re: Stahovanie XML subor v Pythone
tak zistil so že treba skusit nainštalovat novšiu verziu openssl, tak idem sa s tym mordovať, podám report
0
Re: Stahovanie XML subor v Pythone
Pred časom som riešil tiež jeden script v pythone, ktorý používa requests a urllib. Od začiatku som mal problém s overovaním certifikátu stránky. Vyriešil som to tak, že som do pridal "verify=False". To ma za následok, že sa neoveruje dôveryhodnosť certifikátu. Potom už kód len vypisuje varovania. Keď že ale môj kód na webe hľadal celkom veľa dát, tak mi to zbytočne zahlcovalo konzolu s výpisom, tak som vypol aj toto varovanie pridaním na začiatok scriptu.
Záleží teda ako moc je pre teba overovanie certifikátu dôležité. Pre mňa nebolo. Vypínanie varovaní odporúčam až po tom, ako bude script odladený / stabilný...
Kód: Vybrať všetko
requests.get(url, data=None, cookies=cookies, verify=False)
Kód: Vybrať všetko
requests.packages.urllib3.disable_warnings()
Záleží teda ako moc je pre teba overovanie certifikátu dôležité. Pre mňa nebolo. Vypínanie varovaní odporúčam až po tom, ako bude script odladený / stabilný...
0
Re: Stahovanie XML subor v Pythone
Tak nakoniec sa mi to podarilo.
V prvom kroku som sa snažil updatnut openssl na vyššiu verziu, čo sa mi nepodarilo.
Nakoniec som našiel poslednu dostupnu verziu raspberianu a ktora mala v sebe openssl 1.1.1 z 2021 roku a všetko už funguje ako má.
Ak by to niekto riešil v buducnosti tak funguje všetko aj ten request z modulu urllib.request.urlretrieve
V prvom kroku som sa snažil updatnut openssl na vyššiu verziu, čo sa mi nepodarilo.
Nakoniec som našiel poslednu dostupnu verziu raspberianu a ktora mala v sebe openssl 1.1.1 z 2021 roku a všetko už funguje ako má.
Ak by to niekto riešil v buducnosti tak funguje všetko aj ten request z modulu urllib.request.urlretrieve
2
2