J'aime imprimer une version pdf de mon mediawikipage en utilisant pdfkit. Mon mediawiki nécessite une connexion valide pour voir les pages. Je me connecte à mediawiki en utilisant requests
, et cela fonctionne, et je reçois des cookies. Cependant, je ne suis pas en mesure d'utiliser ces cookies avec pdfkit.from_url()
Comment utiliser requests.cookies dans pdftkit/wkhtmltopdf?
Mon python ressemble-scriptum ceci:
#!/usr/bin/env python2
import pdfkit
import requests
import pickle
mywiki = "http://192.168.0.4/produniswiki/"# URL
username = 'produnis' # Username to login with
password = 'seeeecret#' # Login Password
## Login to MediaWiki
# Login request
payload = {'action': 'query', 'format': 'json', 'utf8': '', 'meta': 'tokens', 'type': 'login'}
r1 = requests.post(mywiki + 'api.php', data=payload)
# login confirm
login_token = r1.json()['query']['tokens']['logintoken']
payload = {'action': 'login', 'format': 'json', 'utf8': '', 'lgname': username, 'lgpassword': password, 'lgtoken': login_token}
r2 = requests.post(mywiki + 'api.php', data=payload, cookies=r1.cookies)
print(r2.cookies)
Donc, ici je suis connecté avec succès, et les cookies sont stockés dans r2.cookies. L'impression() - commande donne:
<RequestsCookieJar[<Cookie produniswikiToken=832a1f1da165016fb9d9a107ddb218fc for 192.168.0.4/>, <Cookie produniswikiUserID=1 for 192.168.0.4/>, <Cookie produniswikiUserName=Produnis for 192.168.0.4/>, <Cookie produniswiki_session=oddicobpi1d5af4n0qs71g7dg1kklmbo for 192.168.0.4/>]>
je peux enregistrer les biscuits dans un fichier:
Ce fichier ressemble à ceci: http://pastebin.com/yKyCpPTW
Maintenant, je veux imprimer un particulier page en PDF en utilisant pdfkit. États manpage, que les cookies peuvent être réglés via un fichier cookie jar:
options = {
'page-size': 'A4',
'margin-top': '0.5in',
'margin-right': '0.5in',
'margin-bottom': '0.5in',
'margin-left': '0.5in',
'encoding': "UTF-8",
'cookie-jar' : "cookies",
'no-outline': None
}
current_pdf = pdfkit.from_url(pdf_url, the_filename, options=options)
Mon problème est: avec ce code, le fichier « cookies » devient 0KB et les états PDF « Vous devez être connecté pour voir une page ... »
ma question est:
Comment puis-je utiliser un requests.cookies dans pdfkit.from_url()?