Найти - Пользователи
Полная версия: Проблема с производительностью
Начало » Python для новичков » Проблема с производительностью
1
Artos
есть 3000 html страниц и следующий код:
    html_dir   = "%s/organizations" % DATA_HTML_PATH
html_files = os.listdir(html_dir)

for file in html_files:
file = open(html_dir + "/" + file)
content = file.read()

#name = BeautifulSoup(content).find('h1', { 'class': 'oldh1' })
#name = name.string.replace(" ", "")

file.close()
выполняется он очень долго по сравнению даже с php, а если я раскомментирую строки с парсингом имени, то на каждую итерацию приходится чуть ли не по 1 сек. Что я не так делаю?
zheromo
попробуйте использовать os.walk

import os

html_dir = "%s/organizations" % DATA_HTML_PATH
for root, dirs, files in os.walk(html_dir):
for name in files:
content = open(os.path.join(root, name)).read()
ну и профилировщик вам в помощь, нужно посмотреть где тормозит
Lexander
Если важна скорость, то тогда лучше использовать ElementTree.
Кстати, а что вы потом делаете с name?
Зачем вам BeautifulSoup, может быть вообще будет достаточно работы со строками, регулярными выражениями?
Какой размер файлов?
Lexander
Ну и напоследок:
http://www.crummy.com/software/BeautifulSoup/documentation.html#Improving Performance by Parsing Only Part of the Document
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB