Список, возвращающий 0, когда я использую exten (пул многопроцессорной обработки) - PullRequest
0 голосов
/ 31 декабря 2018

Я пытаюсь выполнить проверку прокси с пулом многопроцессорности, и я получаю 0 из переменной, которую я должен сохранить для работы прокси, и прокси, которые не работают, но он просто возвращает 0 в обоих случаях.Я нахожусь на python 3.5 debian9.6, файл имеет 200 строк (по одному прокси для каждой строки)

#!usr/bin/env python3

from multiprocessing import Pool
import requests
import time
import sys

if (sys.version_info > (3, 0)):
    pass
else:
    print("This program was written for python 3")
    exit()


class ProxyChecker():
    def __init__(self, proxy_list_file):
        self.proxy_list = proxy_list_file
        self.working = []
        self.not_working = []
        self.time_elapsed = 0

    def start_pool_to_check_proxies(self):
        start_time = time.time()
        with Pool(processes=200) as p:
            p.map(self.check_proxies, self.proxy_list)

        self.time_elapsed = time.time() - start_time
        print("Number of working proxies = " + str(len(self.working)))
        print("Number of proxies that don't work = " \
              + str(len(self.not_working)))
        print("Number of proxies that have been checked = " + \
              str(len(self.proxy_list)))
        print("Time elapsed while cheking " + str(len(self.proxy_list) \
              + self.time_elapsed))

    def check_proxies(self, proxy):
        try:
            response = requests.get(
                'http://google.com',
                proxies={'http': 'http://' + proxy},
                timeout=25
                        )
            print('Checking ' + proxy + "  ...")
            self.working.extend(str(proxy))
        except Exception as e:
            print("Something went wrong")
            self.not_working.extend(str(proxy))
        """else:
            if response.status_code == 200:
                self.working.extend(proxy)
                print(self.working)
            else:
                self.not_working.extend(proxy)"""

def main():
    try:
        with open("proxies.txt", 'r') as f:
            proxies = f.read().split('\n')
    except IOError:
        print('Error opening the file')
        print('Check the name of the file')
    else:
       # with open("proxies.txt", 'a') as f:
        #    f.write("*************Working Proxies*************")
        checker = ProxyChecker(proxies)
        checker.start_pool_to_check_proxies()


if __name__ == '__main__':
    main()

Как я уже сказал, идея состоит в том, чтобы сохранить в списке, сколько прокси работает (и какие)но он просто возвращает 0, а proxy_list возвращает правильные прокси.

Если кто-то может мне помочь, я был бы очень рад.

С новым годом !!

...