Etwas auswählen und anklicken

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
problembär

enteenteente hat geschrieben:Na das ist ja mal freundlich!
Mach' Dir nichts draus, die sind hier halt so.

Für einfache Fälle des Durchsuchens von Strings braucht man in Python nicht unbedingt RegEx einzusetzen. Das geht auch schon so:

Code: Alles auswählen

a = "Hallo"

if "lo" in a:
    print("'lo' ist in dem String 'a'.")
Einfach und schön. :P
enteenteente
User
Beiträge: 13
Registriert: Samstag 28. Januar 2012, 17:07

Gut zu wissen :)
Danke. Okay probiere ich aus :)
JonasR
User
Beiträge: 251
Registriert: Mittwoch 12. Mai 2010, 13:59

Solange man sich richtig verhält sind alle nett zu einem :) So wie man es erwartet
BlackJack

@needsch: Ergänzend zu dem Beitrag von Hyperion mit `lxml.html`: Dein HTML ist ungültig, weil `id`\s a) eindeutig sein müssen, und b) keine Leerzeichen enthalten dürfen. Was Du da gemacht hast findet man aber üblicherweise so in `class`-Attributen. Und dann kann man mit der `cssselect()`-Methode ganz einfach alle drei Zahlen filtern:

Code: Alles auswählen

In [77]: html = """
   ....: <html>
   ....: <head>
   ....: <title>bla bla bla</title>
   ....: </head>
   ....: <body>
   ....:     <span class='secret-number'>1337</span>
   ....:     <div id='irgendein-super-dummer-html-code'>
   ....:         <span class='secret-number'>42</span>
   ....:         <span class='tja-das-wird-nicht-klappen secret-number'>73</span>
   ....:     </div>
   ....: </body>
   ....: </html>
   ....: """

In [78]: doc = lxml.html.fromstring(html)

In [79]: doc.cssselect('.secret-number')
Out[79]: 
[<Element span at 93bf9ec>,
 <Element span at 93bf86c>,
 <Element span at 93bf89c>]

In [80]: [node.text for node in doc.cssselect('.secret-number')]
Out[80]: ['1337', '42', '73']
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

@BlackJack: Ja, ich hatte mich auch ein wenig gewundert, dass da ein Beispiel mit ``id``s daher kam. Ich hatte zuvor ja auch eher CSS-Selektoren vorgeschlagen. Aber schön, dass Du auch diesen Ansatz gezeugt hast.

@problembär: Dein Einwand ist durchaus sinnvoll, aber nur dann, wenn man einen Teilstring kennt und wissen will, ob der in einem enthalten ist. In diesem Falle kennt die OP den String ja nicht, sondern will ihn herausfinden ;-)
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Antworten