diff --git a/scrapy/pipelines/files.py b/scrapy/pipelines/files.py index 250f46ad8..a449793c9 100644 --- a/scrapy/pipelines/files.py +++ b/scrapy/pipelines/files.py @@ -7,9 +7,9 @@ See documentation in topics/media-pipeline.rst import hashlib import os import os.path -import rfc822 import time import logging +from email.utils import parsedate_tz, mktime_tz from six.moves.urllib.parse import urlparse from collections import defaultdict import six @@ -91,8 +91,8 @@ class S3FilesStore(object): def _onsuccess(boto_key): checksum = boto_key.etag.strip('"') last_modified = boto_key.last_modified - modified_tuple = rfc822.parsedate_tz(last_modified) - modified_stamp = int(rfc822.mktime_tz(modified_tuple)) + modified_tuple = parsedate_tz(last_modified) + modified_stamp = int(mktime_tz(modified_tuple)) return {'checksum': checksum, 'last_modified': modified_stamp} return self._get_boto_key(path).addCallback(_onsuccess) diff --git a/scrapy/responsetypes.py b/scrapy/responsetypes.py index 7c017feef..c212f5706 100644 --- a/scrapy/responsetypes.py +++ b/scrapy/responsetypes.py @@ -92,9 +92,9 @@ class ResponseTypes(object): chunk = body[:5000] if isbinarytext(chunk): return self.from_mimetype('application/octet-stream') - elif "" in chunk.lower(): + elif b"" in chunk.lower(): return self.from_mimetype('text/html') - elif " %s != %s" % (source, retcls, cls) - + def test_from_headers(self): mappings = [ ({'Content-Type': ['text/html; charset=utf-8']}, HtmlResponse),