Форум сайта python.su
Пробую все таки супом… хтмл обрезал и время построения дерева уменьшилось до 2-3 сек, что приемлемо…
html_start = "<HTML><BODY>"
html_end = "</BODY></HTML>"
html_full = html_start + htmlSource[kkk:iii] + "</table>" + html_end
soup = BeautifulSoup(html_full)
for table in soup:
rows = table.findAll('tr')
for tr in rows:
cols = tr.findAll("td", text=re.compile(">([\w\d]+?)<", re.S|re.I|re.UNICODE))
for td in cols:
print td
print "-----------------------------"
Отредактировано (Ноя. 8, 2009 03:41:13)
Офлайн
офянЭто условие включает только буквы и цифры без пробелов, а у тебя там и пробелы и знаки препинания. Пожалуй подойдет вот так: ">(+?)<".
Только условие ">(+?)<" работать не слишком хотит…sad… а вроде должно…
import time
import re
from BeautifulSoup import BeautifulSoup
start = time.time()
html = open("html").read()
soup = BeautifulSoup(html)
for table in soup.findAll("table"):
rows = table.findAll("tr")
for tr in rows:
cols = tr.findAll("td", {"class": "row"},
text=re.compile("\S+?", re.I | re.U))
for td in cols:
print td
print "-----------------------------"
print "============================"
print "time:", time.time() - start, "sec"
Отредактировано (Ноя. 8, 2009 15:37:45)
Офлайн