Beispiel #1
0
 def _read_url_as_StringIO(self, url, params=None):
     """
     Open url (and retry)
     """
     response = self._get_response(url, params=params)
     text = self._sanitize_response(response)
     out = StringIO()
     if len(text) == 0:
         service = self.__class__.__name__
         raise IOError("{} request returned no data; check URL for invalid "
                       "inputs: {}".format(service, self.url))
     if isinstance(text, binary_type):
         out.write(bytes_to_str(text))
     else:
         out.write(text)
     out.seek(0)
     return out
Beispiel #2
0
def safeGetDF(url):
    httpsession = requests_cache.CachedSession(cache_name='bmm-uciml-cache', backend='sqlite')
    response = httpsession.get(url)
    if response.status_code != requests.codes.ok:
        return None
    text = response.content
    out = StringIO()
    if len(text) == 0:
        #service = self.__class__.__name__
        raise IOError("{} request returned no data; check URL for invalid ")
    if ".xls" in url:
        httpsession.close()
        return xlrd.open_workbook(file_contents=text)
        #out.write(text)
        #out.write(bytes_to_str(text,encoding="ISO-8859-1"))
    elif response.headers["content-type"] != "text/html":
        out.write(bytes_to_str(text,encoding="ISO-8859-1"))
    else:
        out.write(text)
    out.seek(0)
    httpsession.close()
    #decoded_data = out.decode("utf-8")
    return out