urllib.error.HTTPError: HTTP Error 404: Not Found using pandas 即使 url 存在

时间:2021-07-22 19:31:14

标签: python pandas csv url https

我试图运行此代码:

import pandas as pd
df = pd.read_csv(r"C:\Users\Chaitanya\Desktop\Finsearch\AAPL.csv")
df = df.sort_values(by="Date")
df = df.dropna()
# calculate returns
df = df.assign(close_day_before=df.Close.shift(1))
df['returns'] = ((df.Close - df.close_day_before)/df.close_day_before)

# get options data from yahoo finance // in this case, exercise data is july 24th
r = pd.read_html('http://finance.yahoo.com/quote/AAPL/options?date=1655424000&p=AAPL')[0]

显示错误:

Traceback (most recent call last):
  File "c:\Users\Chaitanya\Desktop\Finsearch\finserach.py", line 10, in <module>
    r = pd.read_html('http://finance.yahoo.com/quote/AAPL/options?date=1655424000&p=AAPL')[0]
  File "C:\Users\Chaitanya\AppData\Local\Programs\Python\Python39\lib\site-packages\pandas\util\_decorators.py", line 311, in wrapper
    return func(*args, **kwargs)
  File "C:\Users\Chaitanya\AppData\Local\Programs\Python\Python39\lib\site-packages\pandas\io\html.py", line 1098, in read_html
    return _parse(
  File "C:\Users\Chaitanya\AppData\Local\Programs\Python\Python39\lib\site-packages\pandas\io\html.py", line 906, in _parse
    tables = p.parse_tables()
  File "C:\Users\Chaitanya\AppData\Local\Programs\Python\Python39\lib\site-packages\pandas\io\html.py", line 222, in parse_tables
    tables = self._parse_tables(self._build_doc(), self.match, self.attrs)
  File "C:\Users\Chaitanya\AppData\Local\Programs\Python\Python39\lib\site-packages\pandas\io\html.py", line 745, in _build_doc
    raise e
  File "C:\Users\Chaitanya\AppData\Local\Programs\Python\Python39\lib\site-packages\pandas\io\html.py", line 726, in _build_doc
    with urlopen(self.io) as f:
  File "C:\Users\Chaitanya\AppData\Local\Programs\Python\Python39\lib\site-packages\pandas\io\common.py", line 211, in urlopen
    return urllib.request.urlopen(*args, **kwargs)
  File "C:\Users\Chaitanya\AppData\Local\Programs\Python\Python39\lib\urllib\request.py", line 214, in urlopen
    return opener.open(url, data, timeout)
  File "C:\Users\Chaitanya\AppData\Local\Programs\Python\Python39\lib\urllib\request.py", line 523, in open
    response = meth(req, response)
  File "C:\Users\Chaitanya\AppData\Local\Programs\Python\Python39\lib\urllib\request.py", line 632, in http_response
    response = self.parent.error(
  File "C:\Users\Chaitanya\AppData\Local\Programs\Python\Python39\lib\urllib\request.py", line 555, in error
    result = self._call_chain(*args)
  File "C:\Users\Chaitanya\AppData\Local\Programs\Python\Python39\lib\urllib\request.py", line 494, in _call_chain
    result = func(*args)
  File "C:\Users\Chaitanya\AppData\Local\Programs\Python\Python39\lib\urllib\request.py", line 747, in http_error_302
    return self.parent.open(new, timeout=req.timeout)
  File "C:\Users\Chaitanya\AppData\Local\Programs\Python\Python39\lib\urllib\request.py", line 523, in open
    response = meth(req, response)
  File "C:\Users\Chaitanya\AppData\Local\Programs\Python\Python39\lib\urllib\request.py", line 632, in http_response
    response = self.parent.error(
  File "C:\Users\Chaitanya\AppData\Local\Programs\Python\Python39\lib\urllib\request.py", line 561, in error
    return self._call_chain(*args)
  File "C:\Users\Chaitanya\AppData\Local\Programs\Python\Python39\lib\urllib\request.py", line 494, in _call_chain
    result = func(*args)
  File "C:\Users\Chaitanya\AppData\Local\Programs\Python\Python39\lib\urllib\request.py", line 641, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 404: Not Found``

1 个答案:

答案 0 :(得分:0)

您发布的堆栈跟踪似乎表明错误来自您未在问题中发布的代码:

Traceback (most recent call last): 
File "c:\Users\Chaitanya\Desktop\Finsearch\finserach.py", 
line 10, in **r = pd.read_html('http://finance.yahoo.com/quote/AAPL/options?date=1655424000&p=AAPL')**[0] File

特别是 r = pd_read_html('...) 部分。