Python Can';不要从雅虎财经抓取数据

Python Can';不要从雅虎财经抓取数据,python,pandas,request,Python,Pandas,Request,我正在从雅虎财经频道抓取数据。我搜索了以下链接: 我正在使用python、request和Jupiter上的熊猫来爬行它。 错误: 标记数据时出错。C错误:saw 12第3行中应有2个字段 关键错误 开始,我可以爬大约100-200个公司。然后,该程序将错误的任何符号公司。最后,我等一分钟,我可以运行重复它,程序没有错误 原因是什么?非常感谢。也许该网站不希望机器人在其数据周围爬行,并采取措施挫败他们。我不明白你怎么能合理地期望得到答案。您告诉我们您的代码(您没有显示)没有错误——那么您的

我正在从雅虎财经频道抓取数据。我搜索了以下链接:

我正在使用python、request和Jupiter上的熊猫来爬行它。 错误:

  • 标记数据时出错。C错误:saw 12第3行中应有2个字段
  • 关键错误
开始,我可以爬大约100-200个公司。然后,该程序将错误的任何符号公司。最后,我等一分钟,我可以运行重复它,程序没有错误


原因是什么?非常感谢。

也许该网站不希望机器人在其数据周围爬行,并采取措施挫败他们。我不明白你怎么能合理地期望得到答案。您告诉我们您的代码(您没有显示)没有错误——那么您的问题到底是什么?我们所知道的是,您对这个未知代码的行为不满意。如果你需要帮助,请发一封邮件。我很抱歉。但是我编辑了我的问题。谢谢你添加代码——但是你得到的错误消息是什么?当我抓取1个符号时,它不是错误。但爬行大约100-200个符号,它将出现错误:(当我检查1符号错误时,它会运行并更新错误消息。
def createLink(symbol,table):
    s = "https://query1.finance.yahoo.com/v7/finance/download/BVH?period1=923729900&period2=1618039708&interval=1d&events=history&includeAdjustedClose=true"
    return s.replace("BVH",symbol).replace("history",table)

def getData(symbol,table):
    URL = createLink(symbol,table)
    web = requests.get(URL)
    if web.status_code == 200:
      reader = pd.read_csv(URL)
    else:
      reader = pd.DataFrame({"Data":[],"Dividends":[],"Stock Splits":[]})
    return reader
def history(symbol):
    history_close = getData(symbol,'history')
    if history_close.empty:
      return history_close
    divend = getData(symbol,'div')
    stock = getData(symbol,'split')
    x = pd.merge(divend,stock, how="outer", on="Date")
    data = pd.merge(history_close,x, how="outer", on="Date")    
    return data
df = pd.read_excel("/content/drive/MyDrive/Colab Notebooks/symbolNYSE.xlsx")
count = 0
count_fail = 0

for i in range(0,len(df["Symbol"])):
    try:
      count += 1
      print(df["Symbol"][i],count)
      a = history(df["Symbol"][i])
      if not a.empty:
        a.to_excel("/content/drive/MyDrive/ColabNotebooks/GetCloseYahoo/"+df["Symbol"][i]+".xlsx")
    except:
      count_fail+=1
      pass


print("success:", count)
print("fail:", count_fail)