ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

urllib.request.build_opener() как задать более 5ти заголовков
  #691  
Старый 13.05.2010, 19:12
Аватар для Ice_VeNOm
Ice_VeNOm
Познающий
Регистрация: 05.09.2009
Сообщений: 34
Провел на форуме:
86734

Репутация: 14
Отправить сообщение для Ice_VeNOm с помощью ICQ
По умолчанию 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
 
Ответить с цитированием

  #692  
Старый 14.05.2010, 20:01
Аватар для login999
login999
Постоянный
Регистрация: 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)
 
Ответить с цитированием

  #693  
Старый 23.05.2010, 15:36
Аватар для boris_blade
boris_blade
Новичок
Регистрация: 28.09.2009
Сообщений: 11
Провел на форуме:
28226

Репутация: 0
По умолчанию

Всем привет.
есть такой вопрос.
У меня есть некий класс, который передает веб-серверу два параметра.

ml = Mail('mail', 'site.com')
Так вот вопрос как передавать классу список
вида имя@домен?
 
Ответить с цитированием

  #694  
Старый 24.05.2010, 09:18
Аватар для login999
login999
Постоянный
Регистрация: 12.06.2008
Сообщений: 654
Провел на форуме:
4512757

Репутация: 973


По умолчанию

Цитата:
Сообщение от boris_blade  
Всем привет.
есть такой вопрос.
У меня есть некий класс, который передает веб-серверу два параметра.

ml = Mail('mail', 'site.com')
Так вот вопрос как передавать классу список
вида имя@домен?
Код:
ml = Mail(["mail@domain", "mail2@domain"])
М ?
 
Ответить с цитированием

  #695  
Старый 24.05.2010, 23:38
Аватар для boris_blade
boris_blade
Новичок
Регистрация: 28.09.2009
Сообщений: 11
Провел на форуме:
28226

Репутация: 0
По умолчанию

нет так не пойдет.
Емейлов может быть тысяча.
нужно передавать классу их именно из файла
 
Ответить с цитированием

  #696  
Старый 25.05.2010, 08:22
Аватар для Byte_
Byte_
Участник форума
Регистрация: 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()
я это решал так.
 
Ответить с цитированием

  #697  
Старый 25.05.2010, 09:10
Аватар для login999
login999
Постоянный
Регистрация: 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..
 
Ответить с цитированием

  #698  
Старый 25.05.2010, 09:11
Аватар для login999
login999
Постоянный
Регистрация: 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")]
 
Ответить с цитированием

  #699  
Старый 25.05.2010, 10:15
Аватар для Byte_
Byte_
Участник форума
Регистрация: 07.09.2008
Сообщений: 139
Провел на форуме:
351188

Репутация: 65
По умолчанию

login999, красиво =)
 
Ответить с цитированием

  #700  
Старый 26.05.2010, 00:04
Аватар для boris_blade
boris_blade
Новичок
Регистрация: 28.09.2009
Сообщений: 11
Провел на форуме:
28226

Репутация: 0
По умолчанию

login999

Благодарствую.
Утром попробую сделать так.
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ