python - 使用python(robobrowser)下载图片和pdf

标签 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))

但是,输出不是有效的 pdf 文件。当我尝试下载图像时也会发生同样的情况。我已经浏览了文档,但还没有找到任何东西。对此的替代方案似乎是机械化的。但是,python 3 不支持它。

如果能提供帮助或指点,我将不胜感激。此外,如果 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 session 中)。

关于python - 使用python(robobrowser)下载图片和pdf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28560092/

相关文章:

python - Django syncdb 在 SQLite 中工作,在 MySQL 中失败

python - SQLAlchemy 急切加载多个关系

python - Pandas 按自定义功能分组

python - Twisted 与 Google App Engine 在服务移动客户端方面的对比

python - 正则表达式是否可以匹配python中的某一组字母,只要它们不按顺序出现?

python - 如何安装适用于 Python 3.4 的 RoboBrowser

python - 使用 Robobrowser python 库登录 ASPX

python - 如何从标签之间提取文本?