3

パスワードで保護された Web サイトにログインするために 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 がこれを処理できない場合の他の代替手段は大きな助けになります。

4

2 に答える 2

2

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 セッションに保存されます)。

于 2015-03-17T12:28:36.260 に答える
1

返されたページ (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)
于 2016-10-06T17:13:38.830 に答える