@ru_python

Страница 6511 из 9768
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
в среднем получаю 80-85 результатов
ну я бы начал с того что все таки переписал бы с while на for и вместо random использовал бы secret

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?

BLVCK
15.09.2018
07:38:01
while убивает потоки..

сейчас for попробую

Andy
15.09.2018
07:38:51
Питон сам по себе освобождает Гил на таких операциях
Ну да, но все равно они будут работать конкурентно, а не паралельно. Или я че то не понимаю

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

Andy
15.09.2018
07:39:51
Есть же асинхронный request s
Ну будет тож самое что с потоками

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
Ну и я бы советовал не запускать 100 потоков, а сделать ProcessPoolExecutor и выполнять уже там че тебе надо
https://gist.github.com/x-Sonnet/01a2413718cae198563d648bd0cef5ae этот вариант то, что надо.. только у меня есть вытекающие вопросы... 1) как из прокси листа удалять прокси через которые не получилось сделать запрос? 2) нужен ли тут вообще рандомный подбор?

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

ааа proxy_list.remove(p) понял принял

Andy
15.09.2018
08:03:03
ааа proxy_list.remove(p) понял принял
ну это ты конкретно в этом потоке уберешь

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

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

оно уменьшается... значит вроде работает =)

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

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

Filip
15.09.2018
08:09:06
Andy
15.09.2018
08:09:30
queue потокобезопасный вроде
ну это да, но так сходу чтобы это красиов все работало, я чет даже хз

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

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
а если в поток попадёт прокси, которая не сработает?
ну как только ты ее получишь в потоке - из queue она сама удалится

https://docs.python.org/3/library/queue.html

BLVCK
15.09.2018
10:02:51
ну как только ты ее получишь в потоке - из queue она сама удалится
она удалится, поток с функцией не выполнится(если прокся не рабочая)... как мне заново запустить этот же поток с новой проксёй?

я просто для этого цикл использовал

не пойму это понадобится при оспользовании 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

ну вот примерно

это все в цикле каком-нибудь

не пойму это понадобится при оспользовании queue или нет?
Вот клевая статья http://toly.github.io/blog/2014/02/13/parallelism-in-one-line/

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
Да

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

Alexsandr
15.09.2018
10:17:53
Свои то маленькие делаю

Но интереcно посмотреть на производственные задачи)

Страница 6511 из 9768