Pool.Apply_Async不会循环,值错误:池未运行



这是我对多处理的内容,它运行不错。但是,它不会循环到第二页。给我" ValueRorr:池不运行。"

    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) '
                      'AppleWebKit/537.36 (KHTML, like Gecko) '
                      'Chrome/63.0.3239.132 Safari/537.36 QIHU 360SE'
    }
    response = requests.get(forum_page_url, headers=headers).content
    soup = bs4.BeautifulSoup(response, 'lxml')
    recommended = soup.select('tbody:has(.threadpages [src="images/new.gif"]), '
                              'tbody:has(.threadpages [src="images/new1.gif"]), '
    for item in recommended:
        for i in item.select('.folder [href^="thread-"]'):
            url_tail = i['href']
            url_domain = 'http://www.pop999.com/forum/'
            url = urljoin(url_domain, url_tail)
            # 多线程 Multiprocessing
            # q = multiprocessing.Queue()
            p.apply_async(download_imgs, args=(url, ))
            p.apply_async(retrieve_bt_link, args=(url, ))
    p.close()
    p.join()

我的接近和加入与第一个循环排列在一起,它只是不会处理第二页,返回" valueerror:pool not andun"。有人知道为什么以及如何吗?

当我与先前的循环功能(abbrev版本(结合时,问题是解决的:
    forum pages ranging loops:
        posts for loops:
            p.apply_async
            p.apply_async
    p.close()
    p.join()

从我的理解点上,如果您在层次结构顺序中有2个以上的循环{mine是论坛循环>>发布循环>> file loop}(不是并行(,并且您想通过多处理。我强烈建议您将它们组合在一起,以避免"不运行" ValueError。

您可以为每个功能进行多处理,我只是不确定它是否有效。我还遇到了几次"守护程序不允许儿童过程"。因此,看看它如何适应您的情况。

ps我在(CS(Python中的技能非常有限,因此我的建议并不适合所有人。这是非常基本的东西。

问题通过次要解决方案解决:

我的代码包含三个主要部分:1.多个论坛页选择,2.帖子集合,3.帖子内容照片&种子下载。

如果我为论坛&撰写2个功能,则会发生" valueerror:pool不运行"。张贴每个,他们俩都有一个循环,范围为多页,以及用于帖子的循环。当我将它们合并为一个函数时,问题解决了。

相关内容

  • 没有找到相关文章

最新更新