Kota
Понял ))
Kota
Так вот, по мултипоточности. входные данные (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)
Максим
Вопрос. А можно ли как то объединить с https://github.com/tqdm/tqdm ?
хмхм ну для начала попробуй просто обернуть функцией этот tqdm def foo(): for i in tqdm(range(10000)): ...... и впихнуть в тред, посмотри что будет)
Alex
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 ну, нате
Чупакабра
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 ну, нате
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)+1:]) elif i==")" and b=="(": break elif i=="]" and b=="[": break elif i=="}" and b=="{": break else: return False else: return False
Kota
В общем получается какая-то дичь
Kota
Kota
Знаю что нужно как-то поделить входные данные на эти три потока
Чупакабра
В общем получается какая-то дичь
тебе нужен общий счетчик, который ты в каждом треде будешь увеличивать, и общее количество всего, что тебе надо выкачать. Счетчик блокируй, чтоб не получилось что в него одновременно несколько тредов пишут.
Kota
Блин, вроде так легко, но что-то я туплю жестко
Kota
Ребят, может у кого есть готовая реализация? А то я уже день убил, и толком не разобрался
Максим
Ребят, может у кого есть готовая реализация? А то я уже день убил, и толком не разобрался
иди от простого к сложному. вначале просто раздели список ссылок на 4 части и скорми их четырем тредам, потом уже будешь прикручивать красивости
Alexander
Так в примерах tqdm почти все есть. https://github.com/tqdm/tqdm/blob/master/examples/parallel_bars.py только подпилить немного.
Alexander
Или как здесь если нужен один на все 4 треда. Только лок добавить
Alexander
https://github.com/tqdm/tqdm/blob/master/examples/tqdm_wget.py
Александр
пример
Kota
ооо
Тима
?
Kota
https://repl.it/@SSbug696/OutlandishViciousMineral
Немного не то что нужно
Kota
Вот так и живем. Ибо я так и не понял
Kota
кот, нам нужен код
https://pastebin.com/uBpepXey
Kota
😂
Kota
get_page() выполняет парсинг
Максим
get_page() выполняет парсинг
так тред всего один запускается) по плану вроде было 4?
Александр
перепиши и будет то, что нужно
Kota
так тред всего один запускается) по плану вроде было 4?
Да, я же говорю я так и не понял. Как двнные из 20к ссылок разделить на 4 потока. И выполнять парсинг с интервалом в 4 секунды
Kota
1. сделай 4 списка ссылок по 5к 2. запусти 4 треда
легко сказать, когда питон только познаешь:D
Александр
1. сделай 4 списка ссылок по 5к 2. запусти 4 треда
зачем 4 списка, типичная модель производитель-потребитель. 4 треда берут из 1 пулла данные. На уровне структур разделять данные смысла нет
Kota
Максим
тогда нам нужен кто-то кто на пальцах объяснит про очереди и продюсеров)
Kota
😄👌
Максим
каких продюсеров?
которые не консюмеры и не очередь)
Kota
О, кажись понял
Максим
О, кажись понял
выглядит мило. назначаем кота главным по параллельным вычислениям🐈🐈🐈🐈
Kota
Kota
Это было сложно, но я справился:D
Kota
Спасибо всем кто откликнулся
Нави
У меня такое затруднение. Каждые 5 секунд запрос на сервер, сначала делал в цикле, в результате плавал тайминг по времени, так как длительность самого запроса плавает, потом сделал отдельный поток и в бесконечном цикле ожидало по каналу сигнал на запрос, но этот цикл по нарастающей отстает от таймера. Запрос может длится более 5 секунд. Теперь думаю для каждого нового запроса создавать поток. Может есть более правильные наработанные способы по такой ситуации?
Нави
спсб, я уже делаю герутинами, довольно просто получается...
Kota
И снова здравствуйте.
Kota
UnicodeEncodeError: 'latin-1' codec can't encode characters Скажите, кто т осталкивался с проблемой в BeautifulSoup?
Kota
В ссылке есть "Akira_(日日日)"
Roman
В ссылке есть "Akira_(日日日)"
https://docs.python.org/3.6/howto/unicode.html#converting-to-bytes
Kota
И как он будет рабочим? Akira_(\xe6\x97\xa5\xe6\x97\xa5\xe6\x97\xa5)
Kota
А, понял ".encode('utf-8')"
P
воу воу полегче
P
биос тут при чём?
P
ты не мог запороть биос запоров веник
Александр
Бывало, лечилось с liveUSb восстановлением загрузочного сектора
P
может мамка сдохла?
P
а если вынуть веник, в биос пустит?
Absolute
https://help.ubuntu.com/community/Boot-Repair
Александр
Ну значит железная проблема, к сервисникам
Александр
Писки есть на старте?
Александр
Мать признаки жизни показывает?
Александр
Диоды горят какие нибудь?
P
в общем тут будет мнением большинства, что проблема не софтовая
P
мучением будет только туда добраться, если ты в крупном городе и надо работать днём
Absolute
а жд снять?
P
а жд снять?
ему лень, видите ли
Absolute
подключить к другому компу и там пойти с лайва
Absolute
кирпич и лень vs комп и день возьни
Absolute
?
P
ну а кому лень, тот идёт в сервис с баблом и ноутом
P
если он не на гарантии, то бояться нечего
P
если на гарантии, то только сервис, увы
P
находишь чистый стол, берёшь пару стаканчиков под винтики
P
ну и фоткать можно поэтапно
Chebyrash
Друзья, я напомню, что это чат про Python :)
P
Друзья, я напомню, что это чат про Python :)
ну не можем же мы с порога сраху на хер слать
Anonymous
Здравствуйте
Anonymous
Хей
Andrey
Программисты, приветствую! Сам толком не пишу, но играю на бирже. С другом написали бота для торговли валютами, но есть определенные нюансы, которые нам непонятны! Прошу писать в лс тех, кто хорошо знает python и имеет интерес к финансовой сфере!