Python PDF打印一个受密码保护的页面(最好是让wkhtmltopdf使用cookie)
我正在尝试使用Python PDF打印一个受密码保护的页面(最好是让wkhtmltopdf使用cookie),python,cookies,mechanize,wget,wkhtmltopdf,Python,Cookies,Mechanize,Wget,Wkhtmltopdf,我正在尝试使用wkhtmltopdf将受密码保护的页面打印为PDF,但我无法加载(工作)cookie,这意味着我总是只打印“登录”页面 登录后保存cookie 以下代码按预期工作:如果我登录,我可以查看正确的页面,无论我是从cookie加载的,还是输入了登录信息: class PrintPages(object): def __init__(self): ... self.browser = mechanize.Browser() self
wkhtmltopdf
将受密码保护的页面打印为PDF,但我无法加载(工作)cookie,这意味着我总是只打印“登录”页面
登录后保存cookie
以下代码按预期工作:如果我登录,我可以查看正确的页面,无论我是从cookie加载的,还是输入了登录信息:
class PrintPages(object):
def __init__(self):
...
self.browser = mechanize.Browser()
self.cj = mechanize.MozillaCookieJar()
self.browser.set_cookiejar(self.cj)
self.login("cookies.txt")
def login(self, cookie_jar):
""" Log in, save cookie if doesn't exist. Otherwise, load cookie. """
if os.path.isfile(cookie_jar):
self.cj.load(cookie_jar, ignore_discard=True, ignore_expires=True)
else:
self.browser.open(self.login_url)
self.browser.select_form(name="loginform")
self.browser["username"] = self.username
self.browser["password"] = getpass.getpass()
self.browser.submit()
self.cj.save(cookie_jar, ignore_discard=True, ignore_expires=True)
(cookies.txt)
但是,告诉
wget
或wkhtmltopdf
加载cookie会给我提供登录页面
$ wget -p --load-cookies cookies.txt sub.example.com/page.html
$ wkhtmltopdf --cookie-jar cookies.txt sub.example.com/page.html page.pdf
有什么好处?理想情况下,任何允许我打印成PDF的解决方案都是理想的,但我很好奇这里发生了什么
我正在使用:
0.9.9版wkhtmltopdf
:版本0.2.5mechanize
希望这有帮助。非常有帮助,谢谢。是的,在我的特殊情况下,我只使用了
POST
将用户名和密码重定向到重定向URL,但这仍然不能解决一般的cookie问题。@Giles Smith:你们有没有想过用wkhtmltopdf对pdf进行密码保护?你们做得对吗?我也在试着做同样的事情。我认为wkhtmltopdf
与wget
和curl
使用的Netscape格式cookies不兼容。看,很遗憾我没有。我的黑客解决方案是在每个受密码保护的页面上发布登录信息。很抱歉
$ wget -p --load-cookies cookies.txt sub.example.com/page.html
$ wkhtmltopdf --cookie-jar cookies.txt sub.example.com/page.html page.pdf