相关疑难解决方法(0)

使用请求在python中下载大文件

请求是一个非常好的库.我想用它来下载大文件(> 1GB).问题是不可能将整个文件保存在内存中我需要以块的形式读取它.这是以下代码的问题

import requests

def DownloadFile(url)
    local_filename = url.split('/')[-1]
    r = requests.get(url)
    f = open(local_filename, 'wb')
    for chunk in r.iter_content(chunk_size=512 * 1024): 
        if chunk: # filter out keep-alive new chunks
            f.write(chunk)
    f.close()
    return 
Run Code Online (Sandbox Code Playgroud)

由于某种原因它不起作用.在将其保存到文件之前,它仍会将响应加载到内存中.

UPDATE

如果你需要一个可以从FTP下载大文件的小客户端(Python 2.x /3.x),你可以在这里找到它.它支持多线程和重新连接(它确实监视连接),它还为下载任务调整套接字参数.

python download stream python-requests

348
推荐指数
6
解决办法
27万
查看次数

在无头模式下通过 Google Chrome 下载文件

我正在以“正常”模式在 Cromedrive 中编写代码并且工作正常。当我更改为无头模式时,它不会下载文件。我已经尝试了我在互联网上找到的代码,但没有用。

chrome_options = Options()
chrome_options.add_argument("--headless")
self.driver = webdriver.Chrome(chrome_options=chrome_options, executable_path=r'{}/chromedriver'.format(os.getcwd()))
self.driver.set_window_size(1024, 768)
self.driver.command_executor._commands["send_command"] = ("POST", '/session/$sessionId/chromium/send_command')

params = {'cmd': 'Page.setDownloadBehavior', 'params': {'behavior': 'allow', 'downloadPath': os.getcwd()}}
self.driver.execute("send_command", params)
Run Code Online (Sandbox Code Playgroud)

任何人都知道如何解决这个问题?

PS:我不一定需要使用 Chomedrive。如果它在另一个驱动器中工作,那对我来说没问题。

python selenium google-chrome selenium-chromedriver google-chrome-headless

19
推荐指数
2
解决办法
2万
查看次数

如何在 Python 3.5 中恢复文件下载?

我正在使用 python 3.5 requests 模块使用以下代码下载文件,如何使此代码“自动恢复”从部分下载的文件中下载。

response = requests.get(url, stream=True)

total_size = int(response.headers.get('content-length'))  

with open(file_path + file_name, "wb") as file:
    for data in tqdm(iterable = response.iter_content(chunk_size = 1024), total = total_size//1024, unit = 'KB'):
        file.write(data)
Run Code Online (Sandbox Code Playgroud)

requests如果可能的话,我宁愿只使用模块来实现这一点。

python python-3.x python-requests python-3.5 python-3.6

2
推荐指数
1
解决办法
1866
查看次数

如何在 PyCharm 中下载文件而不是 Colab 中的 !wget?

当我在pandas中尝试一些代码时,bash代码wget在colab中使用如下:

import pandas as pd

!wget abc.com/sales.csv
Run Code Online (Sandbox Code Playgroud)

如果我想使用 PyCharm 下载上述互联网文件,wget 无法识别。那么我应该使用哪个命令来下载这个文件呢?

python pandas data-science

2
推荐指数
1
解决办法
4009
查看次数