我正在使用 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/