我已經查看了請求文檔,但我似乎無法找到任何東西。我如何才能請求標題,以便我可以評估文件大小?使用python-requests獲取文件大小,而只獲取標題
29
A
回答
54
>>> 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請求發送的信息」。但並非總是如此。
這裏是得到一個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. 使用FtpLib獲取文件夾大小
- 2. 獲取文件夾大小
- 3. 獲取txt文件大小
- 4. 獲取文件大小ExtJS
- 5. 獲取文件大小笨
- 6. 獲取文件大小
- 7. SetFilePointerEx獲取文件大小
- 8. ASPxUploadControl獲取文件大小
- 9. 只使用批量命令獲取子文件夾的大小
- 10. 獲取文件大小,文件
- 11. 獲取文件的文件大小
- 12. 獲取大文件的大小
- 13. FastPDFKit獲取文檔大小
- 14. 使用JAVA從TFTP服務器獲取文件大小而不下載文件
- 15. 使用php上傳文件時獲取文件大小
- 16. 使用GetListItems從Sharepoint獲取文件/文件夾大小
- 17. Otool - 僅獲取文件大小
- 18. 獲取文件大小上載與JavaScript
- 19. java有效獲取文件大小
- 20. 如何從OpenFileDialog獲取文件大小?
- 21. codeigniter ftp獲取文件大小
- 22. 獲取文件的大小在objective-c
- 23. 獲取在商場文件大小
- 24. 如何獲取WAR文件的大小?
- 25. 獲取文件大小與std :: ios :: ate?
- 26. 如何獲取C文件的大小?
- 27. 獲取carrierwave上傳的文件大小
- 28. 如何獲取文件的大小
- 29. GAE Blob存儲獲取文件大小
- 30. 獲取CFHTTPStream的文件大小
音符的長度,並非每一個響應將必須包括一個'內容length'的一個例子 - 有時被使用'傳送編碼生成的響應:在這種情況下,除非您真正獲得整個響應,否則無法知道響應會持續多久。 –
這與使用urllib.urlopen(url).info()['content-length']'檢索的大小不同,所以不完全是我想要的。 –