Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|
urllib.request.build_opener() как задать более 5ти заголовков |

13.05.2010, 19:12
|
|
Познающий
Регистрация: 05.09.2009
Сообщений: 34
Провел на форуме: 86734
Репутация:
14
|
|
urllib.request.build_opener() как задать более 5ти заголовков
Код:
opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))
opener.addheaders = ....
нужно передать 11 заголовков. После передачи 5ти
Код:
[('User-agent','Opera/9.80'),('Accept-Language',' ru-RU,ru;q=0.9,en;q=0.8'),('Accept-Charset',' iso-8859-1, utf-8, utf-16, *;q=0.1'),('Accept-Encoding',' deflate, gzip, x-gzip, identity, *;q=0'),('Cookie2',' $Version=1'),('Connection',' Keep-Alive, TE'),]
питон пишет
File "C:\Python31\lib\urllib\request.py", line 1029, in do_request_
for name, value in self.parent.addheaders:
ValueError: too many values to unpack
python 3.1
|
|
|

14.05.2010, 20:01
|
|
Постоянный
Регистрация: 12.06.2008
Сообщений: 654
Провел на форуме: 4512757
Репутация:
973
|
|
Попробуй приблизительно так - Питон 3.1. не стоит чтобы проверить
Код:
opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))
headers = {"User-agent":"Opera/9.80", "Accept-Language":" ru-RU,ru;q=0.9,en;q=0.8"}
req = urllib.request.Request("http://www.google.com", headers=headers)
print opener.open(req)
|
|
|

23.05.2010, 15:36
|
|
Новичок
Регистрация: 28.09.2009
Сообщений: 11
Провел на форуме: 28226
Репутация:
0
|
|
Всем привет.
есть такой вопрос.
У меня есть некий класс, который передает веб-серверу два параметра.
ml = Mail('mail', 'site.com')
Так вот вопрос как передавать классу список
вида имя@домен?
|
|
|

24.05.2010, 09:18
|
|
Постоянный
Регистрация: 12.06.2008
Сообщений: 654
Провел на форуме: 4512757
Репутация:
973
|
|
Сообщение от boris_blade
Всем привет.
есть такой вопрос.
У меня есть некий класс, который передает веб-серверу два параметра.
ml = Mail('mail', 'site.com')
Так вот вопрос как передавать классу список
вида имя@домен?
Код:
ml = Mail(["mail@domain", "mail2@domain"])
М ?
|
|
|

24.05.2010, 23:38
|
|
Новичок
Регистрация: 28.09.2009
Сообщений: 11
Провел на форуме: 28226
Репутация:
0
|
|
нет так не пойдет.
Емейлов может быть тысяча.
нужно передавать классу их именно из файла
|
|
|

25.05.2010, 08:22
|
|
Участник форума
Регистрация: 07.09.2008
Сообщений: 139
Провел на форуме: 351188
Репутация:
65
|
|
boris_blade, не совсем понятно, ты хочешь из файла взять список адресов?
Код:
mails = []
def readlist():
file = open('mails.txt','r')
for line in file:
line = line.replace("\n","")
line = line.replace("\r","")
mails.append(line)
eadlist()
я это решал так.
|
|
|

25.05.2010, 09:10
|
|
Постоянный
Регистрация: 12.06.2008
Сообщений: 654
Провел на форуме: 4512757
Репутация:
973
|
|
Сообщение от boris_blade
Так вот вопрос как передавать классу список
вида имя@домен?
...
Сообщение от boris_blade
нет так не пойдет.
В моем примере в класс передавался именно список.
Пожалуйста, на будущее будьте добры задавать вопросы своими словами, если путаетесь в терминологии.
По сути - в вашем случае в класс можно передавать хэндлер на файл, или создавать динамическую очередь.
В первом случае это будет выглядеть как
ml = Mail(open("mails.txt"))
Только обратите внимание, что не нужно вызывать метод readlines(). Второй вариант сложнее в реализации, это-передавать в класс обьект типа Queue, который будет автоматически наполняться отдельным потоком до определенного значения (создать что-то типа буфера). Из собственного опыта могу сказать что второй вариант будет быстрее, но остановить его сложнее, если вас интересует управление очередью.
P.S. Тысяча имейлов это так, чисто поорать. Задумываться об этом стоит в том случае, если у вас счет идет на миллионы/планируется запускать в таких условиях, что кол-во памяти ограничено.
Последний раз редактировалось login999; 25.05.2010 в 09:13..
|
|
|

25.05.2010, 09:11
|
|
Постоянный
Регистрация: 12.06.2008
Сообщений: 654
Провел на форуме: 4512757
Репутация:
973
|
|
Сообщение от Byte_
boris_blade, не совсем понятно, ты хочешь из файла взять список адресов?
Код:
mails = []
def readlist():
file = open('mails.txt','r')
for line in file:
line = line.replace("\n","")
line = line.replace("\r","")
mails.append(line)
eadlist()
я это решал так.
Код:
mails = [line.strip() for line in open("mails.txt")]
|
|
|

25.05.2010, 10:15
|
|
Участник форума
Регистрация: 07.09.2008
Сообщений: 139
Провел на форуме: 351188
Репутация:
65
|
|
login999, красиво =)
|
|
|

26.05.2010, 00:04
|
|
Новичок
Регистрация: 28.09.2009
Сообщений: 11
Провел на форуме: 28226
Репутация:
0
|
|
login999
Благодарствую.
Утром попробую сделать так.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|