@propython

Страница 179 из 228
Aleksey
20.05.2018
09:44:51
Понял ))

Так вот, по мултипоточности. входные данные (20000 ссылок), запустить 4 потока и выполнять в них парсинг. Так же хотел подключить эту библиотеку https://github.com/tqdm/tqdm#faq-and-known-issues Как правильно реализовать ? from threading import Thread class DownloadThread(Thread): def __init__(self, url, name): Thread.__init__(self) self.name = name self.url = url def get_page(self, url): return url def run(self): print(self.get_page(self.url)) def main(urls): name = "Поток 1" thread = DownloadThread(urls, name) thread.start() if __name__ == "__main__": urls = ["http://www.irs.gov/pub/irs-pdf/f1040.pdf", "http://www.irs.gov/pub/irs-pdf/f1040a.pdf", "http://www.irs.gov/pub/irs-pdf/f1040ez.pdf", "http://www.irs.gov/pub/irs-pdf/f1040es.pdf", "http://www.irs.gov/pub/irs-pdf/f1040es.pdf", "http://www.irs.gov/pub/irs-pdf/f1040sb.pdf"] main(urls)

Максим
20.05.2018
09:50:05
Вопрос. А можно ли как то объединить с https://github.com/tqdm/tqdm ?
хмхм ну для начала попробуй просто обернуть функцией этот tqdm def foo(): for i in tqdm(range(10000)): ...... и впихнуть в тред, посмотри что будет)

Alex
20.05.2018
09:51:15
def recurssion(str): if len(str)>1: b=str[0] for i in str[1:]: if i in "{}[]()": if i in "([{": recurssion(str[str.index(i):]) elif i==")" and b=="(": break elif i=="]" and b=="[": break elif i=="}" and b=="{": break else: return False else: return False def checkio(expression): for i in expression: if i in "({[": recurssion(expression[expression.index(i):]) return True ну, нате

Google
Игорь
20.05.2018
10:07:18
Aleksey
20.05.2018
10:09:41
В общем получается какая-то дичь



Знаю что нужно как-то поделить входные данные на эти три потока

Игорь
20.05.2018
10:12:24
В общем получается какая-то дичь
тебе нужен общий счетчик, который ты в каждом треде будешь увеличивать, и общее количество всего, что тебе надо выкачать. Счетчик блокируй, чтоб не получилось что в него одновременно несколько тредов пишут.

Aleksey
20.05.2018
10:16:28
Блин, вроде так легко, но что-то я туплю жестко

Ребят, может у кого есть готовая реализация? А то я уже день убил, и толком не разобрался

Максим
20.05.2018
10:30:26
Ребят, может у кого есть готовая реализация? А то я уже день убил, и толком не разобрался
иди от простого к сложному. вначале просто раздели список ссылок на 4 части и скорми их четырем тредам, потом уже будешь прикручивать красивости

Alexander
20.05.2018
10:44:29
Так в примерах tqdm почти все есть. https://github.com/tqdm/tqdm/blob/master/examples/parallel_bars.py только подпилить немного.

Или как здесь если нужен один на все 4 треда. Только лок добавить

https://github.com/tqdm/tqdm/blob/master/examples/tqdm_wget.py

Google
Aleksey
20.05.2018
11:14:57
ооо

Temir
20.05.2018
11:54:10
?

Aleksey
20.05.2018
11:54:52
https://repl.it/@SSbug696/OutlandishViciousMineral
Немного не то что нужно



Максим
20.05.2018
12:09:53
кот, нам нужен код

Aleksey
20.05.2018
12:10:40
кот, нам нужен код
https://pastebin.com/uBpepXey

?

get_page() выполняет парсинг

Максим
20.05.2018
12:13:50
get_page() выполняет парсинг
так тред всего один запускается) по плану вроде было 4?

Alex
20.05.2018
12:14:43
перепиши и будет то, что нужно

Aleksey
20.05.2018
12:14:45
так тред всего один запускается) по плану вроде было 4?
Да, я же говорю я так и не понял. Как двнные из 20к ссылок разделить на 4 потока. И выполнять парсинг с интервалом в 4 секунды

Aleksey
20.05.2018
12:16:23
1. сделай 4 списка ссылок по 5к 2. запусти 4 треда
легко сказать, когда питон только познаешь:D

Alex
20.05.2018
12:16:52
1. сделай 4 списка ссылок по 5к 2. запусти 4 треда
зачем 4 списка, типичная модель производитель-потребитель. 4 треда берут из 1 пулла данные. На уровне структур разделять данные смысла нет

Aleksey
20.05.2018
12:18:31
Максим
20.05.2018
12:19:26
тогда нам нужен кто-то кто на пальцах объяснит про очереди и продюсеров)

Aleksey
20.05.2018
12:19:50
??

Максим
20.05.2018
12:27:29
каких продюсеров?
которые не консюмеры и не очередь)

Google
Aleksey
20.05.2018
12:35:33


Максим
20.05.2018
12:39:38
выглядит мило. назначаем кота главным по параллельным вычислениям????

Aleksey
20.05.2018
13:43:34
Это было сложно, но я справился:D

Спасибо всем кто откликнулся

Нави
20.05.2018
18:01:18
У меня такое затруднение. Каждые 5 секунд запрос на сервер, сначала делал в цикле, в результате плавал тайминг по времени, так как длительность самого запроса плавает, потом сделал отдельный поток и в бесконечном цикле ожидало по каналу сигнал на запрос, но этот цикл по нарастающей отстает от таймера. Запрос может длится более 5 секунд. Теперь думаю для каждого нового запроса создавать поток. Может есть более правильные наработанные способы по такой ситуации?

Нави
20.05.2018
19:08:11
спсб, я уже делаю герутинами, довольно просто получается...

Aleksey
21.05.2018
13:35:23
И снова здравствуйте.

UnicodeEncodeError: 'latin-1' codec can't encode characters Скажите, кто т осталкивался с проблемой в BeautifulSoup?

В ссылке есть "Akira_(日日日)"

Aleksey
21.05.2018
13:44:28
И как он будет рабочим? Akira_(\xe6\x97\xa5\xe6\x97\xa5\xe6\x97\xa5)

А, понял ".encode('utf-8')"

Pavel
21.05.2018
19:42:54
воу воу полегче

биос тут при чём?

ты не мог запороть биос запоров веник

Alex
21.05.2018
19:44:02
Бывало, лечилось с liveUSb восстановлением загрузочного сектора

Pavel
21.05.2018
19:44:23
может мамка сдохла?

а если вынуть веник, в биос пустит?

Google
Absolute Nikola
21.05.2018
19:45:01
https://help.ubuntu.com/community/Boot-Repair

Alex
21.05.2018
19:45:01
Ну значит железная проблема, к сервисникам

Писки есть на старте?

Мать признаки жизни показывает?

Диоды горят какие нибудь?

Pavel
21.05.2018
19:46:18
в общем тут будет мнением большинства, что проблема не софтовая

мучением будет только туда добраться, если ты в крупном городе и надо работать днём

Absolute Nikola
21.05.2018
19:50:16
а жд снять?

Pavel
21.05.2018
19:50:32
а жд снять?
ему лень, видите ли

Absolute Nikola
21.05.2018
19:50:36
подключить к другому компу и там пойти с лайва

кирпич и лень vs комп и день возьни

?

Pavel
21.05.2018
19:51:05
ну а кому лень, тот идёт в сервис с баблом и ноутом

если он не на гарантии, то бояться нечего

если на гарантии, то только сервис, увы

находишь чистый стол, берёшь пару стаканчиков под винтики

ну и фоткать можно поэтапно

xPushkin
21.05.2018
19:53:23
Друзья, я напомню, что это чат про Python :)

Страница 179 из 228