[Genshi] img - src Attributswerte auslesen

Django, Flask, Bottle, WSGI, CGI…
Antworten
rads
User
Beiträge: 153
Registriert: Freitag 26. März 2010, 15:51

Hallo zusammen,

ich dachte eigentlich schon etwas länger mit Genshi (http://genshi.edgewall.org/) zu arbeiten,
aber offenbar wohl doch nicht.

Ich bin zuversichtlich das mir hier einer helfen kann und hoffentlich auch wird.

Ich möchte wie folgt mit Genshi einen HTML Stream parsen:

- ich möchte aus img-Tags die Attributswerte für src auslesen, welche nicht mit HTTP beginnen
oder kurz XPath: //img [not( starts-with(@src,'http'))]//@src

Damit kann Genshi leider nichts anfangen.

Alternativ würde es mir reichen "einfach" alle Img src-attribute auszulesen,
also Xpath: //img/@src

Leider kann damit Genshi auch nichts anfangen.

So die eigentliche Frage, wie kann ich mit Genshi Attributswerte auslesen, manipulation ist mir bekannt

Minimalbeispiel:

Code: Alles auswählen

    htmlDoc = HTML('<img src="DevTrac/bild" />')
    buffer = StreamBuffer()
    print htmlDoc | Transformer('//img/@src').copy(buffer)
    print "Buffer: %s"%buffer

Hat vielleicht einer eine Idee? Würd mich freuen

Grüße

Stefan
rads
User
Beiträge: 153
Registriert: Freitag 26. März 2010, 15:51

Hallo,

hatte mal wieder eine Brett vorm Kopf...

Anbei ein Beispiel wie es mit unschönen linearen Aufwand gehen würde

Code: Alles auswählen

    htmlDoc = HTML('<img id="blubb" src="DevTrac/bild" /><img src="http:blubb">texttext</img>')
    result = htmlDoc.select('//img/@src')

    for r in result:
        value = r.get('src')
        if value.startswith('DevTrac'):
            htmlDoc = htmlDoc |Transformer('//img [@src="%s"]'%value).attr('src', 'http://%s'%value)
    print htmlDoc

Grüße
Antworten