defaultheaders.py 568 B

12345678910111213141516171819202122
  1. """
  2. DefaultHeaders downloader middleware
  3. See documentation in docs/topics/downloader-middleware.rst
  4. """
  5. from scrapy.utils.python import without_none_values
  6. class DefaultHeadersMiddleware(object):
  7. def __init__(self, headers):
  8. self._headers = headers
  9. @classmethod
  10. def from_crawler(cls, crawler):
  11. headers = without_none_values(crawler.settings['DEFAULT_REQUEST_HEADERS'])
  12. return cls(headers.items())
  13. def process_request(self, request, spider):
  14. for k, v in self._headers:
  15. request.headers.setdefault(k, v)