2017-09-26 3 views
0

tl; dr私は、ある特定のことを許可するサーバーからファイルをダウンロードしたいと思っていますUser-Agents。私はそれを解析するか、読まずに、それをダウンロードしたいファイルがPDFファイルまたは.zipまたは他のフォーマットすることができますのでurlopen()でPython3でファイルをダウンロードする方法や、urlretrieve()にカスタムヘッダを追加する方法はありますか?

opener = urllib.request.build_opener() 
opener.addheaders = [('User-Agent', 'Interwebs Exploiter 4')] 
opener.open(url) 

:私は、次のコードを使用して、サイトから200 OKを得ることができました。 Urlretrieve()は良いアイデアのようですが、サーバーに403 Forbiddenを返させるデフォルトのヘッダーを使用します。

カスタム組み込みオープナーを使用してファイルをダウンロードする方法、または単にurlretrieve()にヘッダーを追加する方法はありますか?

そして、Python Docsのthis exampleは私にとって不器用です。

答えて

1

私はそのためrequestsを使用します。

import requests 

headers = {'User-Agent': 'Interwebs Exploiter 4'} 

r = requests.get(url, allow_redirects=True, headers=headers) 
    with open(filename, 'wb') as f: 
     for chunk in r.iter_content(1024): 
      f.write(chunk) 

を、それは絶対に必要でない限り、いくつかの理由がurllib

+0

追加の依存関係をインストールしなくても、それを行うための任意の方法を使用するの? – stendarr

関連する問題