• Python многопоточный парсер пример?

    @developinwed
    Можно в треды пустить
    from threading import Thread
    import httplib, sys
    from queue import Queue
    
    urls = ['url1', 'url2',.....]
    concurrent = 200
    
    def doWork():
        while True:
            url = q.get()
            status, url = getStatus(url)
            doSomethingWithResult(status, url)
            q.task_done()
    
    def getStatus(url):
        try:
            proxyRand = getRandProxy()
            conn = httplib.HTTPConnection(proxyRand["ip"], proxyRand["port"])
            conn.request("GET", url, headers={})
            res = conn.getresponse()
            return res.status, url
        except Exception as e:
            return e, url
    
    def getRandProxy():
    	return {
    		"ip" : "127.0.0.1",
    		"port" : 80
    	}
    
    def doSomethingWithResult(status, url):
        print(status, url)
    
    q = Queue(concurrent * 2)
    for i in range(concurrent):
        t = Thread(target=doWork)
        t.daemon = True
        t.start()
    try:
        for url in urls:
            q.put(url.strip())
        q.join()
    except KeyboardInterrupt:
        sys.exit(1)
    Ответ написан
    8 комментариев
  • Почему не отправляется запрос?

    @xbcaax
    оператор group зарезервированное имя в mysql
    Ответ написан
    1 комментарий
  • Корректно ли брать деньги с заказчика за рендер при часовой оплате?

    vaux
    @vaux
    Курящий лыжник
    Посмотрите расценки на сайтах рендер-ферм. На ребусфарм, например, самый большой ценник - 2,6 р. за ГГц/ч. Потом посчитайте аналогичную стоимость рендеринга на вашей машине. Вы, конечно, можете время работы компьютера считать по вашей ставке, но это получится очень много. Как вы это заказчику обоснуете, если он будет в курсе про рендер-фермы? На счет за электричество такую сумму не спишешь.

    На мой взгляд, тут логично было бы действительно рендерить на рендер-ферме, а в ценник добавлять затраченные вами средства на услуги фермы + стоимость 1 часа вашей работы за подготовку сцены к рендерингу на ферме (можно брать и больше для больших проектов, обосновывая это большей экономией времени). В конечном итоге выйдет, что вы получите свою копейку за рендеринг, сэкономите ресурс вашего процессора и, самое главное, сэкономите время себе и заказчику.
    Ответ написан
    Комментировать