
BLVCK
15.09.2018
07:24:25
не все подходят для домена к которому идёт запрос

Alex
15.09.2018
07:24:29

Nikolay
15.09.2018
07:24:39
Пинай их саппорт, зачем они какаху тебе продают

Google

Nikolay
15.09.2018
07:25:19
Латенси
Это проблема домена, что к нему не все могут достучаться

BLVCK
15.09.2018
07:26:28
так что. выхода никакого нет?

Nikolay
15.09.2018
07:26:59
Я не знаю целой картины
Ты ддосишь мой домен?
Я тебя нашел наконец

BLVCK
15.09.2018
07:28:03
у меня обновляемая база проксей, там сразу 2-3к подгружается и рандомно берётся один прокси для запроса
Я тебя нашел наконец
https://gist.github.com/x-Sonnet/01a2413718cae198563d648bd0cef5ae
скрипт создаёт 100 потоков с этой функцией, которая принимает разные id.. по итогу я не получаю 100 результатов т.к если выбрасывается исключение то всё.. габелла

Nikolay
15.09.2018
07:32:23
Я вижу

BLVCK
15.09.2018
07:32:27
в среднем получаю 80-85 результатов

Nikolay
15.09.2018
07:32:40
Ну прокси такие
Они все Https?

Google

BLVCK
15.09.2018
07:33:23
а если сервер не ответит двухсотым кодом? чё делать?

Andy
15.09.2018
07:33:27

Nikolay
15.09.2018
07:33:27
Сессию подставь

Andy
15.09.2018
07:35:58
к тому же много поточность она как бы такая. больше чем количество ядер у тебя все равно не одновременно работать, плюс GIL. requests его конечно может быть релизит. Но все равно у тебя скорее всего только 1 поток выполняется в еденицу времени

Nikolay
15.09.2018
07:36:04
...только

BLVCK
15.09.2018
07:36:24
короче дело не в качестве прокси, у меня другой вопрос... как сделать повторный запрос в случае ProxyError или Timeout?

Andy
15.09.2018
07:37:38

BLVCK
15.09.2018
07:38:01
while убивает потоки..
сейчас for попробую

Маришка
15.09.2018
07:38:28

Andy
15.09.2018
07:38:51

Nikolay
15.09.2018
07:39:37
Есть же асинхронный request s

Andy
15.09.2018
07:39:51

Nikolay
15.09.2018
07:40:52
И проверяй сначала response status code, потом делай JSON.loads

Andy
15.09.2018
07:43:29
Ну и я бы советовал не запускать 100 потоков, а сделать ProcessPoolExecutor и выполнять уже там че тебе надо

BLVCK
15.09.2018
07:59:04

Andy
15.09.2018
07:59:46

Google

Nikolay
15.09.2018
08:00:44

BLVCK
15.09.2018
08:00:49
глобально. прокси лист обновляемый. если прокся не подошла, то она мне на 100% не будет нужна далее
ааа
proxy_list.remove(p)
понял принял

Andy
15.09.2018
08:03:03
в остальных она останется, я хз как для всех убирать

BLVCK
15.09.2018
08:04:08
прокси лист глобальный. после каждой пачки запросов у меня выводится колличество оставшихся прокси
оно уменьшается... значит вроде работает =)

Andy
15.09.2018
08:04:47
что значит глобальный, если ты в разных процесса/потоках его дергаешь

BLVCK
15.09.2018
08:06:36
с рандомом так и не понял как поступать... стоит ли тут мудрить вообще... если прокся падает - то она удалиться из листа, а если она рабочая - то впринципе без разницы с какой прокси будет начинать идти цикл.. верно ведь?

Олег
15.09.2018
08:08:51

Filip
15.09.2018
08:09:06

Andy
15.09.2018
08:09:30

Andy
15.09.2018
08:09:39
queue это все таки не лист

Filip
15.09.2018
08:10:13
тем лучше, ему же туда накидать их, а потом по одной выковыривать

Andy
15.09.2018
08:12:37
ну тогда да

Nikolay
15.09.2018
09:46:02
a = None
return a if a is not None else None

?? Eugene
15.09.2018
09:46:52

BLVCK
15.09.2018
09:52:45
ну тогда да
https://gist.github.com/x-Sonnet/01a2413718cae198563d648bd0cef5ae
вообщем теперь потоки дерутся за удаление нерабочей прокси...
в итоге спамится ошибка:
ValueError: list.remove(x): x not in list

Andy
15.09.2018
09:53:28

BLVCK
15.09.2018
09:53:52
там нет рандома... посмотри гист

Google

BLVCK
15.09.2018
09:53:58
я же циклом иду по листу

Andy
15.09.2018
09:54:22
Ну тогда логично все
Все получают один и тот же прокси, один удаляет и все остальные сосут лапу

?? Eugene
15.09.2018
09:56:55
proxy_list - обычный лист или queue?

Admin
ERROR: S client not available

?? Eugene
15.09.2018
09:57:09
а, ну да, не queue

BLVCK
15.09.2018
09:57:14
обычные лист

?? Eugene
15.09.2018
09:57:28
ну юзай блокировку

BLVCK
15.09.2018
09:57:40
я 3 недели учусь, пока многого не знаю

?? Eugene
15.09.2018
09:57:53
или в queue прокси запихай

BLVCK
15.09.2018
09:58:04
просто не понимаю... я использовал цикл для того, чтобы блок "try" исполнился в обязательном порядке, пусть и не с первого раза... куда тут рандом втыкать-то и каким образом

?? Eugene
15.09.2018
09:58:05
потом доставай каждым потоком - queue.popleft()
зачем тебе рандом?

BLVCK
15.09.2018
09:58:41
а если в поток попадёт прокси, которая не сработает?

?? Eugene
15.09.2018
09:59:02
https://docs.python.org/3/library/queue.html

BLVCK
15.09.2018
10:02:51
я просто для этого цикл использовал
не пойму это понадобится при оспользовании queue или нет?

?? Eugene
15.09.2018
10:04:24
зависит от логики

Google

?? Eugene
15.09.2018
10:05:30
if r.status_code == 200:
делаешь_грязь()
else:
proxy = queue.get()
continue
ну вот примерно
это все в цикле каком-нибудь

BLVCK
15.09.2018
10:12:48
зависит от логики
https://gist.github.com/x-Sonnet/01a2413718cae198563d648bd0cef5ae
логика такая примерно...
в списке ids около 100 id. для каждого из них создаётся поток с запросом. цикл for создал для того чтобы try исполнился в любом случае в каждом потоке и отдал значение.

Alexsandr
15.09.2018
10:13:09
С чего начать?

BLVCK
15.09.2018
10:13:14
без него у меня из 100 id выполнялось 80

Alexsandr
15.09.2018
10:15:51
Мужики и дамы вопрос такой, возможно изучать phyton и параллельно работать над каким-то проектом. Типа подмастерье у мастера???

You
15.09.2018
10:15:58
Да

?? Eugene
15.09.2018
10:15:59

BLVCK
15.09.2018
10:17:24
спасибо, сейчас попробую

Alexsandr
15.09.2018
10:17:53
Свои то маленькие делаю
Но интереcно посмотреть на производственные задачи)