私はリクエストのドキュメントを見ましたが、何も見つかりませんでした。ヘッダーのみを要求すると、ファイルサイズを評価できますか?ヘッダを取得するだけで、python-requestsを使ってファイルサイズを取得する
29
A
答えて
54
HEAD requestを送信:
>>> import requests
>>> response = requests.head('http://example.com')
>>> response.headers
{'connection': 'close',
'content-encoding': 'gzip',
'content-length': '606',
'content-type': 'text/html; charset=UTF-8',
'date': 'Fri, 11 Jan 2013 02:32:34 GMT',
'last-modified': 'Fri, 04 Jan 2013 01:17:22 GMT',
'server': 'Apache/2.2.3 (CentOS)',
'vary': 'Accept-Encoding'}
HEADリクエストヘッダーのみをダウンロードするGETリクエストのようなものです。実際にあなたのHEAD要求を尊重することは、サーバーに任されていることに注意してください。一部のサーバーはGET要求にのみ応答するため、GET要求を送信して、本体をダウンロードする代わりに接続を閉じる必要があります。それ以外の場合、サーバーはファイルの合計サイズを決して指定しません。
11
使用requests.get(url, stream=True).headers['Content-length']
stream=True
は、関数リターンは、のみ応答ヘッダがダウンロードされたときに、応答本体がないことを意味します。
両方requests.get
とrequest.head
はあなたのヘッダーを取得することができますが、get
get
を使用することの利点がありますあなたは長さを検査した後、応答本体をダウンロードしたい場合、あなたは、単にアクセスすることから始めることができ、より柔軟ですcontent
プロパティを使用するか、またはコンテンツをチャンクでダウンロードするiterator
を使用してください。- "HEAD要求はGET要求に応じて送信される情報と同じである必要があります。しかし、必ずしもそうではありません。ここで
はないすべての応答は、必ずしも `コンテンツlength`含むMIT open course video
MitOpenCourseUrl = "http://www.archive.org/download/MIT6.006F11/MIT6_006F11_lec01_300k.mp4"
resHead = requests.head(MitOpenCourseUrl)
resGet = requests.get(MitOpenCourseUrl,stream=True)
resHead.headers['Content-length'] # output 169
resGet.headers['Content-length'] # output 121291539
関連する問題
- 1. pythonはurllib2だけを使ってヘッダを取得します
- 2. ASPxUploadControlファイルサイズを取得する
- 3. .NETでヘッダー/ファイルサイズを取得する
- 4. オブジェクトの型だけを取得する
- 5. os.walk中にファイルサイズを取得
- 6. CGI使用時にperlでHTTPヘッダを取得する方法
- 7. Cで大きなファイルサイズを取得
- 8. ファイルサイズの取得SSIS C#
- 9. jQuery.ajaxを実行するdivを1つだけ取得する
- 10. 取得する方法SOAPヘッダ
- 11. Alexaスキルキットからシングルワードパラメータを取得するだけです
- 12. PHP:受け取ったリクエストの本体を取得する
- 13. javascriptでHTML5 Canvas.todataurlファイルサイズを取得するには?
- 14. アンドロイドでライブビデオ録画のファイルサイズを取得する方法は?
- 15. .Netで最大許容ファイルサイズを取得するには?
- 16. どのようにJavaでのファイルサイズを取得する
- 17. 与えられたファイルサイズを取得
- 18. なぜISerializationSurrogate.SetObjectはオブジェクトを取得するだけでなく、オブジェクトを取得して取得するのですか?
- 19. PDFBox - 単語の位置を取得するだけでなく、文字を取得する
- 20. PRAW:コメントIDだけでredditコメントオブジェクトを取得するには?
- 21. Entity Frameworkで必要なものだけを取得する
- 22. CGAffineTransformからローテーションだけを取得
- 23. javascriptでactivexを使わずにclientsideからファイルサイズを取得するには?
- 24. Linqを使ってNHibernateでオブジェクトと子コレクションを取得する
- 25. rmarkdownを使ってtry()でエラーメッセージを取得するには?
- 26. iphoneでmapkitを使って地名を取得するには?
- 27. JenkinsでSonarを使ってJaCoCoカバレッジを取得するには?
- 28. C#でハンドルを使ってエクスプローラウィンドウのフルパスを取得する
- 29. nodejsでkoaを使って "HTTP_REFERER"を取得するには?
- 30. RQ pythonでidを使ってジョブを取得するには?
ノートの長さの取得の一例である - 時々応答は'転送エンコードを使用して生成されます。チャンクされています。この場合、実際に応答を得ない限り、応答がどれくらい長く続くかを知る方法はありません。 –
これは 'urllib.urlopen(url).info()['content-length']'を使って検索したサイズとは異なります。 –