Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 19, 2011 17:46:40

InPython
От:
Зарегистрирован: 2011-01-31
Сообщения: 69
Репутация: +  0  -
Профиль   Отправить e-mail  

Как правильно записывать данные в файл со списка?

вот пытаюсь написать простенький парсер ников с форума phpbb

import os, re
from urllib.request import urlopen
n = 0
while True:
n += 50
url = urlopen("http://www.ebay-forum.ru/phpBB2/memberlist.php?mode=joined&order=ASC&start="+str(n))
data = url.read()
s = str(data)
pattern = re.compile("class=\"gen\">([^<]+)</a>", re.U)
result = re.findall(pattern, s)
list(result)
print (result)
f = open("user.txt","w+")
for i in result:
f.writelines(i+'\n')
собсно проблемы: в переменную result попадают нормально все ники, проверяю так: print (result), а вот в user.txt попадают только данные как бы “за один проход цикла”. И вторая проблема с кириллицей в регулярке, вроде добавил флаг re.U, а парсит все равно как “\xca\xee\xeb\xff\xed\xfb\xf7”
подскажи пожалуйста как решить эти вопросы =)



Офлайн

#2 Апрель 19, 2011 19:16:32

sp3
От:
Зарегистрирован: 2010-01-12
Сообщения: 405
Репутация: +  18  -
Профиль   Отправить e-mail  

Как правильно записывать данные в файл со списка?

открывайте файл с флагом “a”

*** Python 2.6.6 (r266:84297, Aug 24 2010, 18:46:32) [MSC v.1500 32 bit (Intel)] on win32. ***
>>> "\xca\xee\xeb\xff\xed\xfb\xf7"
'\xca\xee\xeb\xff\xed\xfb\xf7'
>>> print "\xca\xee\xeb\xff\xed\xfb\xf7"
Коляныч



Офлайн

#3 Апрель 19, 2011 19:46:42

InPython
От:
Зарегистрирован: 2011-01-31
Сообщения: 69
Репутация: +  0  -
Профиль   Отправить e-mail  

Как правильно записывать данные в файл со списка?

открываю с флагом а, все тоже самое.
Больше интересует то что в файл попадает лишь часть переменной result . Подозреваю что там с циклом записи не все в порядке =( Ребята помогите, я новичок в программинге =)



Офлайн

#4 Апрель 19, 2011 20:12:48

sp3
От:
Зарегистрирован: 2010-01-12
Сообщения: 405
Репутация: +  18  -
Профиль   Отправить e-mail  

Как правильно записывать данные в файл со списка?

f.close() незабывай делать



Офлайн

#5 Апрель 20, 2011 00:17:00

InPython
От:
Зарегистрирован: 2011-01-31
Сообщения: 69
Репутация: +  0  -
Профиль   Отправить e-mail  

Как правильно записывать данные в файл со списка?

да это тут роли не играет, здесь только часть скрипта, остальное допишется по мере решения текущих проблем.



Офлайн

#6 Апрель 20, 2011 23:48:23

InPython
От:
Зарегистрирован: 2011-01-31
Сообщения: 69
Репутация: +  0  -
Профиль   Отправить e-mail  

Как правильно записывать данные в файл со списка?

i.decode('windows-1251').encode('utf-8')
вообщем с кодировкой поступил вот так, и все заработало =)



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version