Применение многопоточности к результатам анализа в сети с ошибками для подссылок родительской ссылки - PullRequest
0 голосов
/ 30 сентября 2018

Я создал веб-синтаксический анализатор, который сначала анализирует содержимое списка базовых URL-адресов, получает все их соответствующие подссылки, а затем выполняет итерацию по этим подсылкам, снова получает подсылки этих подссылок и так далее.Я хочу применить многопроцессорность или многопоточность, чтобы я мог распараллеливать вызовы запроса.Поскольку многопоточность разделяет один и тот же объект памяти, я перешел к многопоточности.К сожалению, у меня возникла проблема, которая может быть вызвана несколькими вызовами URL-адресов, полученных из одного и того же родителя для потока?Кто-нибудь знает, как лучше распараллелить мой веб-парсер, не сталкиваясь с приведенной ниже ошибкой.

Это ошибка, которую я получаю:

Error HTTPSConnectionPool(host='www.facebook.com', port=443): Max retries exceeded with url: /dialog/share?app_id=132746074315&display=popup&href=https%3A%2F%2Fwww.engadget.com%2F2018%2F09%2F28%2Fepa-dissolve-science-advisory-office%2F (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7fc2a9132eb8>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)): Could not access this webpage: https://www.facebook.com/dialog/share?app_id=132746074315&display=popup&href=https%3A%2F%2Fwww.engadget.com%2F2018%2F09%2F28%2Fepa-dissolve-science-advisory-office%2F

Вот так я применяю многопоточность

 def main(self):

        self.getBaseURLs()

        while self.idx <= self.drillDown:
            urls = self.getURLs()
            threads = [threading.Thread(target=self.crawlPages, args=(url,)) for url in urls]
            for thread in threads:
                thread.start()
            for thread in threads:
                thread.join()

            # p = pool.ThreadPool(cpu_count()-1)
            # p.map(self.crawlPages, urls)
            # p.close()
            # p.join()

            self.idx += 1
            self.urlCollection[self.idx] = self.sublinks
            self.sublinks = []
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...