FANDOM


Ambox important.svgEz a szócikk az érettségi követelményeket meghaladó ismeretet tartalmaz.

Ez a program a standard könyvtár használatára mutat egyszerű példát. A köpönyeg.hu-ról lekérdezzük és a képernyőre írjuk Szeged hőmérsékletét és légnyomását. Az urllib modul használatával beolvassuk a weblap tartalmát, majd a re modul segítségével reguláris kifejezésekkel nyerjük ki és formázzuk a keresett adatokat.

Weblapoknál mindig előfordulhat, hogy megváltozik a lap szerkezete, ezellen egyszerűbb folyamatos ellenőrzéssel védekezni, mint univerzális kódot írni, de azért van benne egy hibakezelő eljárás is, hogy a program ne álljon le.

Check.svg Tesztelve a 3.1.2 verzióban. (A 2.5-ös változat a laptörténetben elérhető.)

from urllib.request import urlopen
import re
 
def rag(s):
    #Dátumrag
    if s=='1':
        return '-jén'
    elif s=='10' or s[-1] in ['1','4','5','7','9']:
        return '-én'
    else:
        return '-án'
 
for line in urlopen('http://www.koponyeg.hu/t/Szeged'):
    line = line.decode('windows-1250')  # Decoding the binary data to text.
    m=re.search(r'<td>(\d{1,4}\.\s.{3,5}\.\s(\d{1,2}))\.\s(\d{1,2}:\d{1,2})<\/td>',line)
    m2=re.search(r'(\-?\d{1,2})&deg;C<\/td>',line)
    if m:
        print ('Szeged hőmérséklete a köpönyeg.hu szerint '+m.group(1)+ \
                rag(m.group(2))+' '+m.group(3)+'-kor:',end=' ')
        #group(2) része group(1)-nek, a toldalékoláshoz választottuk le
    if m2:
        print('%s °C.' % m2.group(1))
    if 'Légnyomás:' in line:
        m=re.search(r'(\d{3,4})\.(\d) hpa',line)
        try:
            print ('A légnyomás %s,%s hPa volt.' % (m.group(1),m.group(2)))
            #A tizedespontot és a hpa-t javítottuk.
        except AttributeError:
            print ('A légnyomáskiírás formátuma megváltozott, nézd át a forrást.')
            #Ha nem találja meg, akkor m értéke None, és annak nincs group attribútuma

Az eredmény:

C:\Dokumentumok\SuliPython>urlmegnyit.py
Szeged hőmérséklete a köpönyeg.hu szerint 2010. okt. 7-én 1:15-kor: 12 °C.
A légnyomás 1024,0 hPa volt.

OlvasmányokSzerkesztés

Ez a szócikk forráskódot tartalmaz, amely egy WikiMedia-kiegészítés segítségével olyan színesen jeleníthető meg, mint például ebben a Wikipédia-cikkben. A kiegészítést a Wikia-stáb ígérete szerint 2010 végéig frissítik, addig türelmet kérünk a fapados kinézet miatt.

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.

A Wikia-hálózat

Véletlen wiki