code: def fetch(url, timeout=5, userAgent=None, only_mime_types=None):
      
      headers = {}
      if userAgent:
          headers['User-agent'] = str(userAgent)
      else:
          headers['User-agent'] = ua.random
  
      #request = Request(url=url, headers=headers)
      #response = urlopen(request, timeout=timeout)
      response = requests.get(url, headers=headers, timeout=timeout)
  
      # Return nothing of the content isn't one of the target mime-types.
      if only_mime_types:
          assert isinstance(only_mime_types, (tuple, list))
          # Check for mimetype by looking at pattern in the URL.
          # Not super accurate, but very fast.
          ct, mt_encoding = mimetypes.guess_type(url)
          # Then check for mimetype by actually requesting the resource and
          # looking at the response.
          # More accurate, but slower since we actually have to send a request.
          if not ct:
              response_info = response.info()
              ct = (response_info.getheader('Content-Type') or '').split(';')[0]
          #TODO:if still undefined, use magic.Magic(mime=True).from_file(url)?
          if ct not in only_mime_types:
              return
      try:
          #return response.read()
          return response.text
      except httplib.IncompleteRead as e:
          # This should rarely happen, and is often the fault of the server
          # sending a malformed response.
          #TODO:just abandon all content and return '' instead?
          return e.partial
docs: Retrieves the raw content of the URL.