我一直试图从网站访问一些数据。为此,我一直在使用Python的mechanize和beautifulsoup4包。但是,由于我必须解析的页面数量大约为100,000或更多,因此使用单个线程单独执行它是没有意义的。我试过python的EventLet包有一些并发性,但它没有产生任何改进。任何人都可以提出我可以做的其他事情,或者应该做些什么来加速数据采集过程?
答案 0 :(得分:0)
我将引用我自己对this question的回答,因为它在这里也很合适:
对于您的具体任务,我建议multiprocessing worker pool。您只需定义一个池并告诉它您要使用多少个进程(默认情况下每个处理器核心一个)以及您希望在每个工作单元上运行的函数。然后,您准备好每个工作单元(在您的情况下,这将是一个URL列表)并将其提供给工作池。
您的输出将是原始数组中每个工作项的工作函数返回值的列表。所有酷炫的多处理优点都将在后台进行。当然还有其他工作方式,但这是我最喜欢的方式。
快乐的多处理!