我从许多不同的请求中搜集数据。
到目前为止,我已经使用多线程和请求库来检索必要的,然后将它们加载到sqlite数据库中。大致采用以下方法:
p = Pool(processes=8)
for x in range(start_1,end_1):
for y in range(start_2,end_2):
entry_list = p.starmap(get_data, [(x , y , z) for z in range(start, end)]):
### get_data makes the request and retruns a tuple of (x,y,z,data)
for entry in entry list:
cur.execute('''INSERT INTO Database (attrib_1, attrib_2, attrib_3, data )
VALUES ( ?, ?, ?, ?)''', entry )
这种方法非常慢(在我的机器上制作所有请求需要数天时间)。在做了一些研究之后,我发现对于这类问题存在多线程的替代方案,例如异步请求。不幸的是,我对这种方法一无所知,知道它是否合适,更不用说如何实现它。
有关如何有效完成此任务的任何建议将不胜感激。