

Pavel
03.03.2016
22:16:42
вот код
import http.client
conn = http.client.HTTPConnection("rutor.org")
conn.request("HEAD", "/")
r1 = conn.getresponse()
print (r1.status, r1.reason,)
try:
conn = http.client.HTTPConnection("rutor.org")
conn.request("HEAD", "/")
r1 = conn.getresponse()
print (r1.status, r1.reason)
except http.client.NotConnected as ex:
print('сдохло')
print(ex)
Ошибка:
Traceback (most recent call last):
File "C:/Users/Admin/PycharmProjects/testpython/test.py", line 3, in <module>
conn.request("HEAD", "/")
File "C:\Users\Admin\AppData\Local\Programs\Python\Python35-32\lib\http\client.py", line 1083, in request
self._send_request(method, url, body, headers)
File "C:\Users\Admin\AppData\Local\Programs\Python\Python35-32\lib\http\client.py", line 1128, in _send_request
self.endheaders(body)
File "C:\Users\Admin\AppData\Local\Programs\Python\Python35-32\lib\http\client.py", line 1079, in endheaders
self._send_output(message_body)
File "C:\Users\Admin\AppData\Local\Programs\Python\Python35-32\lib\http\client.py", line 911, in _send_output
self.send(msg)
File "C:\Users\Admin\AppData\Local\Programs\Python\Python35-32\lib\http\client.py", line 854, in send
self.connect()
File "C:\Users\Admin\AppData\Local\Programs\Python\Python35-32\lib\http\client.py", line 826, in connect
(self.host,self.port), self.timeout, self.source_address)
File "C:\Users\Admin\AppData\Local\Programs\Python\Python35-32\lib\socket.py", line 693, in create_connection
for res in getaddrinfo(host, port, 0, SOCK_STREAM):
File "C:\Users\Admin\AppData\Local\Programs\Python\Python35-32\lib\socket.py", line 732, in getaddrinfo
for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno 11001] getaddrinfo failed


Pavel
03.03.2016
22:19:46
строки со второй по пятую лишние, очевидно.

Google

Pavel
03.03.2016
22:19:57
Может это нужно прикрутить http.client.HTTPException

Pavel
03.03.2016
22:20:28
нужно код, котоырй может упасть, завернуть в try\catch. у тебя помирает в третей строке.

Mikhail
03.03.2016
22:20:44

Pavel
03.03.2016
22:20:50
то есть try/except.

Mikhail
03.03.2016
22:21:04
всем привет

Pavel
03.03.2016
22:21:59

Mikhail
03.03.2016
22:22:20

Pavel
03.03.2016
22:23:02
только у тебя будет отлавливаться ровно одно исключение, есть смысл заменить на http.client.HTTPException в except


Pavel
03.03.2016
22:25:31
Traceback (most recent call last):
File "C:/Users/Admin/PycharmProjects/testpython/test.py", line 6, in <module>
conn.request("HEAD", "/")
File "C:\Users\Admin\AppData\Local\Programs\Python\Python35-32\lib\http\client.py", line 1083, in request
self._send_request(method, url, body, headers)
File "C:\Users\Admin\AppData\Local\Programs\Python\Python35-32\lib\http\client.py", line 1128, in _send_request
self.endheaders(body)
File "C:\Users\Admin\AppData\Local\Programs\Python\Python35-32\lib\http\client.py", line 1079, in endheaders
self._send_output(message_body)
File "C:\Users\Admin\AppData\Local\Programs\Python\Python35-32\lib\http\client.py", line 911, in _send_output
self.send(msg)
File "C:\Users\Admin\AppData\Local\Programs\Python\Python35-32\lib\http\client.py", line 854, in send
self.connect()
File "C:\Users\Admin\AppData\Local\Programs\Python\Python35-32\lib\http\client.py", line 826, in connect
(self.host,self.port), self.timeout, self.source_address)
File "C:\Users\Admin\AppData\Local\Programs\Python\Python35-32\lib\socket.py", line 693, in create_connection
for res in getaddrinfo(host, port, 0, SOCK_STREAM):
File "C:\Users\Admin\AppData\Local\Programs\Python\Python35-32\lib\socket.py", line 732, in getaddrinfo
for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno 11001] getaddrinfo failed
Ошибку выдает


parikLS
03.03.2016
22:26:38
добавь http:// к урлу

Pavel
03.03.2016
22:28:38
добавь http:// к урлу
тогда такая ошибка)
Traceback (most recent call last):
File "C:\Users\Admin\AppData\Local\Programs\Python\Python35-32\lib\http\client.py", line 775, in _get_hostport
port = int(host[i+1?)
ValueError: invalid literal for int() with base 10: '//rutor.org'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:/Users/Admin/PycharmProjects/testpython/test.py", line 5, in <module>
conn = http.client.HTTPConnection("http://rutor.org")
File "C:\Users\Admin\AppData\Local\Programs\Python\Python35-32\lib\http\client.py", line 739, in __init__
(self.host, self.port) = self._get_hostport(host, port)
File "C:\Users\Admin\AppData\Local\Programs\Python\Python35-32\lib\http\client.py", line 780, in _get_hostport
raise InvalidURL("nonnumeric port: '%s'" % host[i+1?)
http.client.InvalidURL: nonnumeric port: '//rutor.org'


parikLS
03.03.2016
22:29:53
conn = http.client.HTTPConnection(host="http://rutor.org", port=80)

Google

parikLS
03.03.2016
22:29:56
попробуй так
только на одной строке все

Pavel
03.03.2016
22:30:15
rutor.org и не будет резолвится

Pavel
03.03.2016
22:30:26
НО если поменять Notconnection на InvalidURL то работает:
сдохло
nonnumeric port: '//rutor.org'
Process finished with exit code 0

parikLS
03.03.2016
22:30:52

Pavel
03.03.2016
22:30:53
поставь вместо rutor нормальны домен, яндекс там или ещё что.

Pavel
03.03.2016
22:31:28

Pavel
03.03.2016
22:32:07
и добавь ещё один except с socket- ошибками, посмотри в документации, есть ли там иерархия.

Pavel
03.03.2016
22:37:50

Pavel
03.03.2016
22:46:49
тогда ещё нужно обработать socket.gaierror и socket.timeout.
или перейти на requests, там всё проще с ошибками.

Pavel
03.03.2016
22:56:46

Pavel
03.03.2016
22:57:26
pip install requests
import requests
requests.head('http://rutor.org')
подробности - google "requests python"

Pavel
03.03.2016
23:02:41

Pavel
03.03.2016
23:03:09
вместо всей твоей возни с conn и getresponse,

Pavel
03.03.2016
23:03:41

parikLS
03.03.2016
23:13:30
ребят, нужен ваш совет, сейчас пилю небольшой проектик, паршу новости. так сложилось, что мне во время парсинга нужно смотреть не парсил ли я эту новость раньше, айдишники новостей есть,
решил смотреть в базу, допустим последние 20 айдишников. Так как парсеров много и они работают постоянно, то дергать базу считаю сильно затратно. в проекте уже используется
редис в качестве паб\саб, думаю заюзать его как кеш для текущей задачи. при старте апликейшена загружать последние новости в редис, а во время парсинга уже работать с ним. и встал у меня вопрос,
какую структуру в кеше сделать. пока что первое что пришло в голову это что-то типа news_source:[news_id1, news_id2...]. Но так как редис хранит байты, то прийдется этот лист постоянно пересоздавать
из строки, например через ast.literal_eval(value.decode()). Возможно есть какието другие идеи?

Pavel
03.03.2016
23:17:10
а зачем только 20, а не все просмотренные?

Google

Pavel
03.03.2016
23:19:23
может, класть в редис что-то типа 'AAA_BBB': 'yes', где ААА - это id парсера, а BBB - id новости?

parikLS
03.03.2016
23:21:58
за день парсится где-то 10к новостей

Pavel
03.03.2016
23:25:38
1 Million small Keys -> String Value pairs use ~ 100MB of memory
на 64 битах такая арифметика. на 32 будет меньше.

parikLS
03.03.2016
23:29:28
хммм, тогда гуд, при текущей динамике это 100 мб оперативки за 3 месяца, тем более что можно легко провести мейнтенс ночью

Pavel
03.03.2016
23:29:37
а ещё можно хранить дату парсинга и иногда удалять старые записи.

parikLS
03.03.2016
23:31:03
нужно будет потестить еще гет на миллионе записай
хотя не думаю что у редиса с этим проблемы (=

Pavel
03.03.2016
23:33:23
о, что я нашёл. http://redis.io/commands/expire

parikLS
03.03.2016
23:34:06
оооо, вообще тогда сказка)
спасибо за помощь)

Андрей
03.03.2016
23:54:47
Привет, есть кто живой?
Был помню бот в телеграме, который делил группы на комнаты, может кто помнит его название?

Владимир
04.03.2016
03:54:03
Добречко утречко

Mikhail
04.03.2016
03:55:10
добрый вечер

Whore Amazing
04.03.2016
03:56:00
добрый день

Pavel
04.03.2016
03:56:09

Mikhail
04.03.2016
03:56:09
?

Pavel
04.03.2016
03:58:21
а?
Славная традиция есть, примерно в это время выяснять кто просыпается, кто обедает а у кого рабочий день к концу подходит.

Google

Mikhail
04.03.2016
03:58:30
аа :)
ну типа того да
ребят, а девушки есть в конфе?
поздравлять будем :D?

Pavel
04.03.2016
04:00:03

Сан
04.03.2016
04:02:54
Ребят ни кто трафик без рута на андроиде не ловил?

Whore Amazing
04.03.2016
04:08:59
без рута никак, AFAIk

HAOS 001
04.03.2016
04:20:08

Whore Amazing
04.03.2016
04:21:37
нужен же

HAOS 001
04.03.2016
04:21:39
неа

Admin
ERROR: S client not available

Whore Amazing
04.03.2016
04:21:50
вы про перехват трафика с вайфай?

HAOS 001
04.03.2016
04:21:58
вроде да

Whore Amazing
04.03.2016
04:22:09
о, Хаос
ты же есть в чате IPS

HAOS 001
04.03.2016
04:22:13
а как ты еще хочешь ?
че за IPS ?
чат про мониторы ?

Whore Amazing
04.03.2016
04:22:44
IPS\do::(chat)
что-то такое
я оттуда ливнул в приступе депресняка
пусть вернуь

HAOS 001
04.03.2016
04:23:00
я хз че за чат это

Whore Amazing
04.03.2016
04:23:02
SMTech\Admin
не помню точно название

Google

HAOS 001
04.03.2016
04:23:12
не был в таком

Whore Amazing
04.03.2016
04:23:17
там еще Алекс со своим лисоботом
был ты там вроже

HAOS 001
04.03.2016
04:24:36

Whore Amazing
04.03.2016
04:24:48
я ника его не помню ?

HAOS 001
04.03.2016
04:28:02

Artem
04.03.2016
04:33:24

Mikhail
04.03.2016
05:42:37

Aliaksiej
04.03.2016
05:44:02

Mikhail
04.03.2016
05:44:51
Всех присутствующих девушек с наступающим праздником!?

Aliaksiej
04.03.2016
05:45:51
Ну чот ты рано

Mikhail
04.03.2016
05:45:52
Крепитесь мужики

Kolyann
04.03.2016
05:50:40

Ilya
04.03.2016
05:51:01
ага, он по праздникам не работае
заходишь в телеграм, а тот тебе, вы что не видите, у нас обед :)

Mikhail
04.03.2016
05:57:01

Elena
04.03.2016
06:34:48

Сан
04.03.2016
06:35:22
Причем тут вайфай
Мне надо больше
И 3G
И wifi

Ilya
04.03.2016
06:35:45
ты