# Import required modules
import requests
from bs4 import BeautifulSoup
import time
import pandas as pd
# Get data from webpage
mystocks = ['GOOG', 'META', 'MSFT', 'PLTR', 'TSLA', 'ZS', 'PYPL', 'SHOP', 'TTCF']
def getData(symbol):
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0;
Win64; x64) AppleWebKit/537.36
(KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36'}
url = f'https://finance.yahoo.com/quote/{symbol}'
r = requests.get(url, headers=headers)
soup = BeautifulSoup(r.text, 'html.parser')
stock = {
'symbol': symbol,
'price': soup.find('div', {'class':'D(ib)
Mend(20px)'}).find_all('fin-streamer')
[0].text,
}
return stock
def export_data(stockdata):
df = pd.DataFrame(stockdata)
df.to_excel("LETS GO2.xlsx")
df = df.apply(pd.to_numeric)
df.apply(pd.to_numeric, errors='ignore')
if __name__ == '__main__':
while True:
stockdata = []
for item in mystocks:
print(item)
stockdata.append(getData(item))
export_data(stockdata)
time_wait = 10
print(f'Waiting {time_wait} minutes...')
time.sleep(time_wait * 60)
我需要将“price”列转换为数字格式,但解决方案df["A"] = pd.to_numeric(df["A"])
不起作用...不再出现错误(这可能是我的代码的问题),但导出的Excel没有按要求返回数字数据类型。
感谢所有的帮助,谢谢!
1条答案
按热度按时间jk9hmnmh1#
像 这样 做 。
中 的 每 一 个
这 就是 你 的 下场