Ich beschäftige mich heute erst den zweiten Tag mit Python (habe vorher etwas hobbymäßig mit Bash gearbeitet) und plane aktuell, die Threadtitel eines Forums auszulesen, bei dem ich angemeldet bin. Die Threads sind jeweils einem eindeutigen Tagindex zugeordnet, so dass der relevante Bereich relativ einfach zu parsen war. Nun stellt sich mir folgendes Problem: Wenn seit dem letzten Login etwas neues in einen Thread gestellt wurde, wird dieser fett angezeigt, ansonsten nicht. Ich zeige das mal an einem Beispiel zur Verdeutlichung:
Code: Alles auswählen
<a href="f.cfm?id=2986439&r=threadview&a=1&t=3272523" tabindex="21">
<b>nach langer zeit neu hier</b>
</a>
Meine Fragen sind also:
1. Wie kann ich trotzdem b.string auslesen?
2. Wie baue ich den Fall ein, wo der Text nicht fett ist? Bietet sich da eher if, while oder for an?
Hier mal das gesamte Script wie es aktuell ist, vielleicht hat ja jemand ne gute Idee:
Code: Alles auswählen
import cookielib, urllib2, re
from BeautifulSoup import BeautifulSoup
# Cookies zur Verwendung vorbereiten
cookie_jar = cookielib.MozillaCookieJar()
cookie_jar.load("/home/sebastian/.mozilla/firefox/3n1jwnxz.default/cookies.txt")
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie_jar))
# Inhalt holen und soupen
seite1 = opener.open("http://www.link-zum-forum.de/f.cfm?id=2986439")
inhalt = seite1.read()
seite1.close()
soup = BeautifulSoup(inhalt)
def threads_holen():
thread_nummer = re.compile('\d')
thread_code = soup.findAll('a', tabindex=thread_nummer)
return thread_code
for threads in threads_holen():
print threads