使用python(robobrowser)下载图像和pdf

使用python(robobrowser)下载图像和pdf,python,robobrowser,Python,Robobrowser,我正在使用robobrowser登录到受密码保护的网站。我能够下载html代码并编辑它。但是,当我使用以下方法时: br = RoboBrowser(history=True) url = 'https://dummywebsite.html/dummy.pdf' br.open(url) pdf_file = '/localdir/local.pdf' with open(pdf_file, 'wb') as output: output.write("%s" % (br.parsed

我正在使用robobrowser登录到受密码保护的网站。我能够下载html代码并编辑它。但是,当我使用以下方法时:

br = RoboBrowser(history=True)
url = 'https://dummywebsite.html/dummy.pdf'
br.open(url)
pdf_file = '/localdir/local.pdf'
with open(pdf_file, 'wb') as output:
    output.write("%s" % (br.parsed))
但是,输出不是有效的pdf文件。当我尝试下载图像时也会发生同样的情况。我已经查阅了文档,但还没有找到任何东西。替代方法似乎是机械化。但是,Python3不支持这一点


如果能提供帮助或指点,我将不胜感激。此外,如果robobrowser无法处理此问题,则任何其他替代方案都将非常有用。

您可以尝试使用robobrowser也提供的requests.session对象:

url = "https://dummywebsite.html/dummy.pdf"
pdf_file_path = "/localdir/local.pdf"

browser = RoboBrowser(history=True)
# do the login (e.g. via a login form)
request = browser.session.get(url, stream=True)

with open(pdf_file_path, "wb") as pdf_file:
    pdf_file.write(request.content)

此方法还允许您访问仅在登录后可用的文件(此信息通常存储在HTTP会话中)。

您必须将返回页面(PDF)的全部内容放入文件中。 此代码应适用于:

br = RoboBrowser(history=True)
url = 'https://dummywebsite.html/dummy.pdf'
br.open(url)
pdf_file = '/localdir/local.pdf'

content = br.response.content

with open(pdf_file, "wb") as output:
  output.write(content)

你能用SimpleAuth登录吗<代码>http://login:password@url?如果是这样的话,您什么时候可以使用
urllib2
模块。我认为
br.parsed
可能不是您想要的,因为文档中说这会返回“…parse[d]response content”。也许RoboBrowser支持读取原始HTTP响应正文的方法,或者如果您可以处理身份验证,您可以更轻松地使用
urllib2
。不确定
stream=True
选项是否在那里工作(如果文件小,则无效,如果文件大,则代码可能失败)。