【发布时间】:2020-10-09 14:18:10
【问题描述】:
import re
import requests
import zipfile
import werkzeug
werkzeug.cached_property = werkzeug.utils.cached_property
from robobrowser import RoboBrowser
br = RoboBrowser(history=True)
br.open("loginurl")
forms = br.get_forms()
form=forms[0]
form['username'] = 'myname'
form['password'] = 'mypass'
br.submit_form(form)
url = "ulrlocationofzipfiledownload"
request = br.session.get(url, stream=True)
with open ('data.zip', 'wb') as f:
f.write(request.content)
到目前为止,这可以工作,它会下载一个 zip 文件(到我的脚本所在的桌面)
我希望它从压缩文件中提取特定内容到特定位置,而不在我的桌面上创建压缩文件
我尝试了这段代码的一些变体:
with zipfile.ZipFile('files.zip','r') as f:
myzipfile.extractall('files')
但我无法让它工作。
是否可以从 Web 获取 zipfile 并将其某些特定内容提取到 PC 上的特定位置,而无需先保存下载的 zipfile(也许只在 RAM 中保持 zipfile“打开”?)
【问题讨论】:
-
您可以将 zip 文件下载到某个临时位置,并在完成后将其删除。您当然不必将其保存到桌面。除非“桌面”是指“计算机”。
标签: python zipfile robobrowser