httplib.HTTPMessage(filehandle).getdate(headername)
httplib.HTTPMessage(filehandle).getdate_tz(headername)
mimetools.Message(filehandle).getdate()
rfc822.parsedate(datestr)
rfc822.parsedate_tz(datestr)
- , bir HttpMessage veya mimetools inşa edebilirsiniz. Mesajdan. diğer bilgiler için tepki nesne sorgulama sırasında urllib2 kullanıyorsanız, zaten urlopen
- tarafından döndürülen FileHandler gizli bir HttpMessage nesnesi muhtemelen
- httplib olduğu birçok tarih biçimleri ayrıştırabileceğiniz sahip
- o ek yardım sunabilir çekirdek
NOT:
- HttpMessage rfc822.Message devraldığı mimetools.Message devraldığı, uygulama bir göz vardı. iki yüzer def, sizin ilginizi çekebilir, parsedate ve parsedate_tz (ikincisindeki) e-postadan
- ayrıştırma işlemi (_tz) farklı bir uygulamaya sahiptir.
yalnızca dize parçasına sahip ve bunu ayrıştırmak istiyorsanız, bunu yapabilirsiniz:
>>> from rfc822 import parsedate, parsedate_tz
>>> parsedate('Wed, 23 Sep 2009 22:15:29 GMT')
(2009, 9, 23, 22, 15, 29, 0, 1, 0)
>>>
ama bana mim mesaj yoluyla örnek alalım:
import mimetools
import StringIO
message = mimetools.Message(
StringIO.StringIO('Date:Wed, 23 Sep 2009 22:15:29 GMT\r\n\r\n'))
>>> m
<mimetools.Message instance at 0x7fc259146710>
>>> m.getdate('Date')
(2009, 9, 23, 22, 15, 29, 0, 1, 0)
veya üzeri http iletileri (yanıtları)
>>> from httplib import HTTPMessage
>>> from StringIO import StringIO
>>> http_response = HTTPMessage(StringIO('Date:Wed, 23 Sep 2009 22:15:29 GMT\r\n\r\n'))
>>> #http_response can be grabbed via urllib2.urlopen(url).info(), right?
>>> http_response.getdate('Date')
(2009, 9, 23, 22, 15, 29, 0, 1, 0)
right? şimdi artık daha tarih biçimleri, mim mesajları, mim araçları ve bunların pythonic uygulanması ;-)
durum ne olursa olsun hakkında orada
>>> import urllib2
>>> urllib2.urlopen('https://fw.io/').info().getdate('Date')
(2014, 2, 19, 18, 53, 26, 0, 1, 0)
, http başlıklarını ayrıştırma için email.utils kullanarak daha iyi görünüyor.
Yep, parsedate muhtemelen "en iyi uzlaşmadır", ancak "toleranslı RFC 2822 ayrıştırma", RFC 2616'2 "ZORUNLU" ile% 100 uyumlu değildir - örneğin, RFC 850 formatındaki destansı başarısız Pazar, 06-Nov-94 08:49:37 GMT gibi iki basamaklı yıllarla, ancak 2616, bir müşterinin RFC 850 tarihlerini (iç çekiş) ayrıştırması ZORUNLUDUR. –
email.Utils.parsedate yeterli görünüyor, teşekkürler. Ancak bazen e-mail.utils ve bazen email.Utils olarak adlandırılıyor. Ben e-posta.Utils sürümü eski bir miras varyantı (?) –
'email.utils.parsedate olduğunu email.Utils.parsedate -> True' olduğunu sanırım * U * tils tembel bir yükleyici. – jfs