首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何快速下载多个小文件?(不受带宽限制)

如何快速下载多个小文件?(不受带宽限制)
EN

Stack Overflow用户
提问于 2021-10-16 13:09:39
回答 1查看 40关注 0票数 1

我需要用python下载大约50个CSV文件。根据Google Chrome的网络统计数据,下载只需要0.1秒,而请求处理大约需要7秒。

我目前正在使用headless Chrome进行请求。我尝试了多线程,但据我所知,浏览器不支持多线程(在第一个请求完成处理之前,它不能发出另一个请求)。我不认为多处理是一种选择,因为这个脚本将被托管在虚拟服务器上。

我的下一个想法是使用requests模块,而不是无头的Chrome,但我在没有浏览器的情况下连接到公司网络时遇到了问题。然而,这会奏效吗?还有其他的解决方案吗?我可以在一个驱动程序上使用多个驱动程序实例或多个选项卡吗?谢谢!

下面是我的代码:

代码语言:javascript
运行
复制
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()
EN

回答 1

Stack Overflow用户

发布于 2021-10-16 13:24:45

对于请求,可以尝试将user agent string设置为浏览器,例如: Mozilla/5.0 (X11;Linux x86_64) AppleWebKit/537.36 (KHTML,如Gecko) Chrome /51.0.2704.103Safari/537.36。

一些示例代码:

代码语言:javascript
运行
复制
import requests

url = 'SOME URL'

headers = {
    'User-Agent': 'user agent here',
    'From': 'youremail@domain.com'  # This is another valid field
}

response = requests.get(url, headers=headers)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69595887

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档