, wie ich alle Span mit einer Klasse von 'blue'
, den Text im Format enthalten finden:Wie finden Sie Spannen mit einer bestimmten Klasse mit bestimmten Text mit schönen Suppe und re?
04/18/13 7:29pm
, die sein könnte daher:
04/18/13 7:29pm
oder:
Posted on 04/18/13 7:29pm
in Bezug auf Dafür habe ich bisher die Logik konstruiert:
new_content = original_content.find_all('span', {'class' : 'blue'}) # using beautiful soup's find_all
pattern = re.compile('<span class=\"blue\">[data in the format 04/18/13 7:29pm]</span>') # using re
for _ in new_content:
result = re.findall(pattern, _)
print result
Ich habe mich auf https://stackoverflow.com/a/7732827 und https://stackoverflow.com/a/12229134 bezogen, um zu versuchen, einen Weg zu finden, dies zu tun, aber das obige ist alles, was ich bis jetzt habe.
edit:
das Szenario zu klären, gibt es Span mit:
<span class="blue">here is a lot of text that i don't need</span>
und
<span class="blue">this is the span i need because it contains 04/18/13 7:29pm</span>
und beachten Sie, ich brauche nur 04/18/13 7:29pm
nicht den Rest des Inhalts.
bearbeiten 2:
ich auch versucht:
pattern = re.compile('<span class="blue">.*?(\d\d/\d\d/\d\d \d\d?:\d\d\w\w)</span>')
for _ in new_content:
result = re.findall(pattern, _)
print result
und bekam Fehler:
'TypeError: expected string or buffer'
Ich konnte den obigen Code erfolgreich ausführen, aber es funktionierte nicht in meiner Implementierung. Ich dachte, es könnte sein, weil im Originalquellcode zwischen Datum und Uhrzeit ein ' ' steht, zB '04/18/13 19:29 Uhr'. Als Referenz fügte ich '.replace (" "," ")' zu dem ursprünglichen ''urlopen read object'' hinzu und es funktionierte. Vielen Dank (an alle Antwortenden!). – user1063287