tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von deepthroat
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
1373
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von chmee
    chmee chmee ist offline mod | media
    tutorials.de Moderator
    Registriert seit
    Apr 2004
    Ort
    Berlin bei Potsdam
    Beiträge
    7.629
    Blog-Einträge
    4
    Moin die Herrschaften,

    hat sich Jemand von Euch schon mit der XBMC-Plugin-Schnittstelle beschäftigt ?
    Wie dem auch sei, das Problem basiert auf Python und primär auf der Erkennung eines bestimmten Abschnitts. Ich habe einfach zu selten mit Regex zu tun.

    Gegeben : Eine HTML-Seite, auf welcher mehrere dieser Teile vorkommen..
    HTML-Code:
    ..
    <div class="line even">
     <div class="title">
       <a href="awz.php?film_id=12687&player=1">Lars und Stella wolllen ihr Versteckspiel beenden</a>
     </div>
     <div class="season">0.</div> 
     <div class="number">686.</div>
     <div class="time">29.05.2009 19:05</div>
     <div class="buy">
        <a href="awz.php?container_id=24307&player=1">kostenlos</a>
     </div>
     <div class="vote"></div>
     <div class="favorite"></div>
    </div>
    ..
    Gesucht : Ein Regex, der alle diese HTML-Teile rausmatcht. Essentiell ist es, sich an dem Begriff kostenlos im div buy zu orientieren. Gebraucht werden title, time, number und natürlich die href ( egal welche, die id's sind anders, führen aber zum gleichen Playercontent).

    line even darf als Erkenner nicht benutzt werden, da die Zeilen sich mit even und odd abwechseln und kostenpflichtiger Content genauso definiert ist.

    Mein Ansatz zu matchen wäre nach folgender schriftlicher Anweisung :
    Wenn kostenlos, dann den Text davor bis title.
    Danach kann ich mir ja noch ne Regex schreiben, die die mir gewünschten Einzelteile rausmatcht.

    Danke für jede Hilfe..

    mfg chmee

    Ach ja, wie benutze ich die Python-Regex, damit Zeilenumbruch auch gestattet ist ? DOTALL ? Oder davor alle \n rauslöschen ?
     
    Mein Blog - VideoFAQ - FotoFAQ - bei Flickr - DSLR Kleinanzeigen
    Benutzt den DANKE-Knopf oder bewertet den Beitrag

    "GEHT NICHT" HILFT NICHT, TESTET EURE CODES ONLINE UND GEBT KLARE INFOS!
    -> Regexp <- -> php <- -> Javascript <-

  2. #2
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    Hi.

    Reg. Ausdrücke sind dafür nicht so wirklich geeignet. Willst du denn nicht lieber das HTMLParser Modul verwenden?

    Oder kannst du davon ausgehen, das der Code valides XML ist? Dann würde sich natürlich XML mit XPath anbieten.

    Was ich auf die Schnelle mit regex machen konnte:
    Code python:
    1
    2
    3
    4
    5
    6
    7
    
    r = re.compile('''<div\s[^>]*class=["']title.*?</div>\s*(?:<div.*?</div>\s*)*''', re.DOTALL)
     
    kostenlos = re.compile('''<div[^>]+class\s*=\s*["']buy.*>kostenlos<''', re.DOTALL)
     
    s = file('test.html').read()
     
    res = [ x for x in r.findall(s) if kostenlos.search(x) ]
    Gruß
    chmee bedankt sich. 
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  3. #3
    Avatar von chmee
    chmee chmee ist offline mod | media
    tutorials.de Moderator
    Registriert seit
    Apr 2004
    Ort
    Berlin bei Potsdam
    Beiträge
    7.629
    Blog-Einträge
    4
    Deepthroat, danke erstmal (bevor ichs vergesse). Ich hatte keine Zeit, um es zu testen und daran weiter zu werkeln. Zumindest seh ich in Deinem Script, dass \s auch in Python benutzt werden kann. Das ist fein Beizeiten melde ich mich einfach nochmal, denn das Thema ist sogar für einen weiteren Thread gut

    Ach ja, glaubst Du, dass ich mit dem HTMLParser wirklich schneller sein könnte ?
    Es geht um das Parsen von Links und Infos von den freien Streams auf rtlnow. Wenn man sich die anschaut, bietet sich von Serie zu Serie ein leicht geänderter Aufbau. Manchmal wird zwischen freien und kostenpflichtigen Streams unterschieden, andere Serien sind komplett frei, dafür aber auf mehreren Seiten verteilt. Naja, wenn es Dich zufällig packt, kannst Du was dazu erzählen..

    mfg chmee

    p.s.: Querverweis zum übergreifenden Thema : http://www.tutorials.de/forum/coders...abgreifen.html
     
    Mein Blog - VideoFAQ - FotoFAQ - bei Flickr - DSLR Kleinanzeigen
    Benutzt den DANKE-Knopf oder bewertet den Beitrag

    "GEHT NICHT" HILFT NICHT, TESTET EURE CODES ONLINE UND GEBT KLARE INFOS!
    -> Regexp <- -> php <- -> Javascript <-

Ähnliche Themen

  1. Hilfe: Python-Snippet --> C#
    Von Eroli im Forum .NET Datenverwaltung
    Antworten: 9
    Letzter Beitrag: 30.08.10, 11:14
  2. [Python] Script ( .py ) aus Python Kommandozeile (python.exe) heraus öffnen
    Von Hookah im Forum CGI, Perl, Python, Ruby, Power Shell
    Antworten: 0
    Letzter Beitrag: 16.12.09, 10:59
  3. Windows-Umgebungsvariablen mit Hilfe von Perl oder Python setzen
    Von DaFunk2k im Forum CGI, Perl, Python, Ruby, Power Shell
    Antworten: 2
    Letzter Beitrag: 03.07.07, 07:51
  4. Hilfe: StoppUhr mit Python
    Von SkinnyPuppy im Forum CGI, Perl, Python, Ruby, Power Shell
    Antworten: 0
    Letzter Beitrag: 11.06.07, 07:37
  5. [Python] Video tutorial zu dem Python Webframework TurboGears (20 Min )
    Von Thomas Darimont im Forum CGI, Perl, Python, Ruby, Power Shell
    Antworten: 0
    Letzter Beitrag: 07.12.06, 13:28