httplib.HTTPMessage(filehandle).getdate(headername)
httplib.HTTPMessage(filehandle).getdate_tz(headername)
mimetools.Message(filehandle).getdate()
rfc822.parsedate(datestr)
rfc822.parsedate_tz(datestr)
- यदि आप एक कच्चे डेटा धारा है, तो आप एक HTTPMessage या एक mimetools निर्माण कर सकते हैं। इससे संदेश infos के लिए प्रतिक्रिया ऑब्जेक्ट की क्वेरी, जबकि यह अतिरिक्त मदद की पेशकश कर सकते
- अगर आप urllib2 का उपयोग कर रहे हैं, तो आप पहले से ही एक HTTPMessage वस्तु filehandler urlopen
- द्वारा लौटाए में छिपा हुआ यह शायद कई तिथि प्रारूप
- httplib में है पार्स कर सकते है कोर
नोट:
- कार्यान्वयन पर एक नज़र था, HTTPMessage mimetools.Message जो rfc822.Message से विरासत से विरासत। दो फ़्लोटिंग डीफ़ आपकी रुचि के हो सकते हैं, पार्सडेट और पार्सडेट_टीजे (बाद में)
- ईमेल से पार्सडेट (_tz) एक अलग कार्यान्वयन है, हालांकि यह वही दिखता है।
अगर आप केवल स्ट्रिंग के उस टुकड़े है और आप इसे पार्स करने के लिए चाहते हैं आप ऐसा कर सकते हैं,:
>>> from rfc822 import parsedate, parsedate_tz
>>> parsedate('Wed, 23 Sep 2009 22:15:29 GMT')
(2009, 9, 23, 22, 15, 29, 0, 1, 0)
>>>
लेकिन मुझे माइम संदेशों के माध्यम से उदाहरण देना है:
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)
या के माध्यम से http संदेश (प्रतिक्रियाएं)
>>> 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)
सही?
>>> import urllib2
>>> urllib2.urlopen('https://fw.io/').info().getdate('Date')
(2014, 2, 19, 18, 53, 26, 0, 1, 0)
वहाँ, अब हम अब तिथि प्रारूप, माइम संदेश, माइम उपकरण और उनके pythonic कार्यान्वयन ;-)
जो कुछ भी मामले के बारे में अधिक, http हेडर पार्स करने के लिए email.utils का उपयोग कर की तुलना में बेहतर लग रहा है।
हाँ, पार्सडेट का शायद सबसे अच्छा समझौता है, हालांकि इसकी "सहिष्णु आरएफसी 2822 पार्सिंग" आरएफसी 2616'2 मांग के साथ 100% संगत नहीं है "- उदाहरण के लिए, आरएफसी 850 प्रारूप पर महाकाव्य विफल दो-अंकों के वर्षों के साथ, जैसे 'रविवार, 06-नवंबर-9 4 08:49:37 जीएमटी', फिर भी 2616 का कहना है कि एक ग्राहक आरएफसी 850 तिथियों (श्वास) को पार्स करने में सक्षम होना चाहिए। –
ईमेल। उपयोग करता है ..parsedate पर्याप्त लगता है, धन्यवाद। लेकिन यह भ्रमित है कि इसे कभी-कभी ईमेल.टिल, और कभी-कभी ईमेल कहा जाता है। उपयोग करता है। मुझे लगता है कि ईमेल। संस्करण का उपयोग एक पुराना विरासत संस्करण है जिसे हटा दिया गया है (?) –
'email.utils.parsedate ईमेल है। उपयोग करता है। Msgstr" ऐसा लगता है कि * यू * टाइल एक आलसी लोडर है। – jfs