Python中具有多处理的Web抓取会随机暂停

Python中具有多处理的Web抓取会随机暂停,python,python-3.x,python-multiprocessing,Python,Python 3.x,Python Multiprocessing,我试图使用一个名为data\u finder的函数刮取url列表,其中url是唯一的参数。URL列表称为URL 为了加快进程,我在Windows10上使用Python3中的多处理包。我使用的代码如下: if __name__ == '__main__': multiprocessing.freeze_support() p = multiprocessing.Pool(10) records = p.map(data_finder, urls) p.close()

我试图使用一个名为
data\u finder
的函数刮取url列表,其中url是唯一的参数。URL列表称为
URL

为了加快进程,我在Windows10上使用Python3中的多处理包。我使用的代码如下:

if __name__ == '__main__':
    multiprocessing.freeze_support()
    p = multiprocessing.Pool(10)
    records = p.map(data_finder, urls)
    p.close()
    p.join()
    print('Successfully exported.')
    with open('test.json', 'w') as outfile:
        json.dump(records, outfile)

我遇到的问题是,有时代码冻结,无法继续,但其他时候它确实能按预期工作。但是,每当它冻结时,它通常位于最后10个URL中。这是常见的情况还是有解决方案?

您是否尝试对请求调用进行计时,以检查这是否是延迟的原因?从我对“有时”的理解来看,似乎是网络造成了延迟。

您是否尝试对请求呼叫进行计时,以检查这是否是延迟的原因?从我对“有时”的理解来看,似乎是网络造成了延迟。你能检查一下吗?看起来你是对的-请求超时了。奇怪的是,在超时之前,它已经在URL列表中显示了这么多。我已经发布了我的评论作为答案,这样你就可以批准并将问题标记为已解决。谢谢