--- a/whois/parser.py Sat Jan 16 06:48:13 2016 +0000
+++ b/whois/parser.py Wed Mar 02 09:45:05 2016 +0000
@@ -45,7 +45,7 @@
def datetime_parse(s):
for known_format in KNOWN_FORMATS:
try:
- s = datetime.strptime(s.strip(), known_format)
+ s = datetime.strptime(s, known_format)
break
except ValueError as e:
pass # Wrong format, keep trying
@@ -57,7 +57,7 @@
if DATEUTIL:
try:
return dp.parse(
- s.strip(),
+ s,
tzinfos=tz_data,
dayfirst=dayfirst,
yearfirst=yearfirst
@@ -114,11 +114,13 @@
if regex:
values = []
for value in re.findall(regex, self.text, re.IGNORECASE):
- if isinstance(value, basestring):
+ value = value.strip()
+ if value and isinstance(value, basestring):
# try casting to date format
- value = cast_date(value.strip(),
- dayfirst=self.dayfirst,
- yearfirst=self.yearfirst)
+ value = cast_date(
+ value,
+ dayfirst=self.dayfirst,
+ yearfirst=self.yearfirst)
if value and value not in values:
# avoid duplicates
values.append(value)
@@ -548,7 +550,7 @@
'domain_name': 'domain:\s*(.+)',
'registrar': 'registrar:\s*(.+)',
'creation_date': 'created:\s*(.+)',
- 'expiration_date': 'anniversary:\s*(.+)',
+ 'expiration_date': 'Expir\w+ Date:\s?(.+)',
'name_servers': 'nserver:\s*(.+)', # list of name servers
'status': 'status:\s*(.+)', # list of statuses
'emails': '[\w.-]+@[\w.-]+\.[\w]{2,4}', # list of email addresses