【发布时间】:2021-10-16 13:09:38
【问题描述】:
我需要在 python 中下载 ~50 个 CSV 文件。根据 Google Chrome 网络统计数据,下载仅需 0.1 秒,而处理请求大约需要 7 秒。
我目前正在使用无头 Chrome 来发出请求。 我尝试了多线程,但据我所知,浏览器不支持(在第一个请求完成处理之前它不能发出另一个请求)。我不认为多处理是一个选项,因为此脚本将托管在虚拟服务器上。
我的下一个想法是使用请求模块而不是无头 Chrome,但是在没有浏览器的情况下连接到公司网络时遇到问题。不过,这行得通吗?还有其他解决方案吗?我可以在单个驱动程序上使用多个驱动程序实例或多个选项卡吗?谢谢!
这是我的代码:
from Multiprocessing.pool import ThreadPool
driver=ChromeDriver()
Login(driver)
def getFile(item):
driver.get(url.format(item))
updateSet=blah
pool= ThreadPool(len(updateSet))
for item in updateSet:
pool.apply_async(getFile,(item,))
pool.close()
pool.join()
【问题讨论】:
标签: python multithreading selenium-webdriver python-requests download