python - 在 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 中。这是常见的情况还是有解决办法?
解决方案
您是否尝试过计时请求调用以检查这是否是停滞的?根据我对“有时”的理解,在我看来,网络造成了延迟。
推荐阅读
- android - 当我在其中使用 docker 时,jenkinsfile 失败
- zabbix - zabbix Trapper VS zabbix agent
- druid - 如何检查德鲁伊转换规范表达式中的“IN”子句
- kotlin - 如何解决 PW Generator 无法处理特定字符?
- python - 如何使用这个 django 模型创建表单?
- shell - 从一个文件中获取数据并使用 awk 将其发送到另一个文件
- excel - 修改循环以包含 3 个字符串
- python - 使用 Python 读取()图像文件并将其发送到 HttpResponse
- python - keras 迁移学习在之前添加一层并选择特定层作为输出
- python - 使用 Paramiko 将文件从 SFTP 传输到 S3