code: def parse_item(self, response):
          
          # if we got redirected to a login page, then login
          if URLObject(response.url).path == LOGIN_HTML_PATH:
              reqs = self.handle_unexpected_redirect_to_login_page(response)
              for req in reqs:
                  yield req
  
          title = response.xpath("//title/text()").extract_first()
          if title:
              title = title.strip()
  
          # `response.request.headers` is a dictionary where the key is the
          # header name, and the value is a *list*, containing one item,
          # which is the header value. We need to get rid of this list, and just
          # have key-value pairs. (This list probably exists in case the same
          # header is sent multiple times, but that's not happening in this case,
          # and the list construct is getting in the way.)
          #
          # We also need to convert bytes to ASCII. In practice, headers can
          # only contain ASCII characters: see
          # http://stackoverflow.com/questions/5423223/how-to-send-non-english-unicode-string-using-http-header
          request_headers = {key.decode('ascii'): value[0].decode('ascii')
                             for key, value
                             in response.request.headers.items()}
          item = A11yItem(
              url=response.url,
              request_headers=request_headers,
              accessed_at=datetime.utcnow(),
              page_title=title,
          )
          yield item
docs: Get basic information about a page, so that it can be passed to the
          `pa11y` tool for further testing.
  
          @url https://www.google.com/
          @returns items 1 1
          @returns requests 0 0
          @scrapes url request_headers accessed_at page_title