首页 > 解决方案 > 在 Python 中使用多处理进行 Web Scraping 随机停止

问题描述

我正在尝试使用名为 的函数来抓取 url 列表data_finder,其中 url 是唯一的参数。url 列表称为urls.

为了加快这个过程,我在 Windows 10 上使用 Python 3 中的多处理包。我使用的代码如下:

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 中。这是常见的情况还是有解决办法?

标签: pythonpython-3.xpython-multiprocessing

解决方案


您是否尝试过计时请求调用以检查这是否是停滞的?根据我对“有时”的理解,在我看来,网络造成了延迟。


推荐阅读