如何解决使用 Python 同时下载文件的最佳方法?
我正在尝试使用 Python get
模块同时发送 requests
请求。
在寻找解决方案时,我遇到了许多不同的方法,包括 grequests
、gevent.monkey
、requests futures
、threading
、multi-processing
.. .
任务是尽可能快地从同一服务器下载
解决方法
我会使用线程,因为没有必要像多处理那样在多核上运行下载。
所以写一个包含 requests.get()
的函数,然后作为一个线程启动。
但请记住,您的互联网连接必须足够快,否则将不值得。
def download(webpage):
requests.get(webpage)
# Whatever else you need to do to download your resource,put it in here
urls = ['https://www.example.com','https://www.google.com','https://yahoo.com'] # Populate with resources you wish to download
threads = {}
if __name__ == '__main__':
for i in urls:
print(i)
threads[i] = threading.Thread(target=download,args=(i,))
for i in threads:
threads[i].start()
for i in threads:
threads[i].join()
print('successfully done.')
上面的代码包含一个名为 download
的函数,它代表您必须运行以下载您要下载的资源的任何代码。然后用您希望下载的 url 填充一个列表 - 随意更改这些值。这被组装到包含线程的第二个字典中。这样您就可以根据需要在 url 字典中拥有任意数量的 url,并为每个 url 创建一个单独的线程。每个线程都启动,然后加入。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。