Я создаю таблицу Google, чтобы отслеживать цены на акции, которыми я владею. У меня работает API, подключенный к Google Таблицам и моему собственному приложению python.
Мой лист Google выглядит так
Stock | Previous close
AAPL | 316.73
NVDA | 348.71
SPOT | 191.00
В настоящее время у меня работает следующий код.
import requests
import gspread
from oauth2client.service_account import ServiceAccountCredentials
sheet = client.open("Stock").sheet1
AAPL = sheet.cell(2,1).value
url = ('https://ca.finance.yahoo.com/quote/'+AAPL+'?p='+AAPL+'&.tsrc=fin-srch')
response = requests.get(url)
htmltext = response.text
splitlist = htmltext.split("Previous Close")
afterfirstsplit =splitlist[1].split("\">")[2]
aftersecondsplit = afterfirstsplit.split("</span>")
datavalue = aftersecondsplit[0]
sheet.update_cell(2,2,datavalue)
# это обновит значение в моем листе Google до предыдущей цены закрытия
Для каждой отдельной акции я бы скопировал и вставил, изменил символ акции, чтобы найти значение следующей цитаты. Я знаю, что есть способ использовать операторы FOR для автоматизации этого процесса. Я пробовал это со следующим, но он не обновлялся по мере необходимости. В этот момент я достиг стены и был бы признателен за любую помощь или понимание того, как я могу автоматизировать эту функцию.
tickers = {sheet.cell(2,1).value : [],
sheet.cell(3,1).value : [],
sheet.cell(4,1).value : [],
sheet.cell(5,1).value :[]}
for symbols in tickers:
url = ('https://ca.finance.yahoo.com/quote/'+symbols+'?p='+symbols+'&.tsrc=fin-srch')
response = requests.get(url)
htmltext = response.text
splitlist = htmltext.split("Previous Close")
afterfirstsplit =splitlist[1].split("\">")[2]
aftersecondsplit = afterfirstsplit.split("</span>")
datavalue = aftersecondsplit[0]
sheet.update.cell(2,1,datavalue)
print (datavalue)
При этом собираются все значения текущих цен акций и импортируются в файл Excel, но только с одной координатой. Я не знаю, как увеличивать «1» в sheet.update.cell (2,1, datvalue) каждый раз в инструкции FOR. Я считаю, что это способ решить эту проблему, но если у кого-то есть другие предложения, я все уши.