【发布时间】:2021-05-01 17:11:41
【问题描述】:
我是 python 新手,我使用 pandas 从网站上抓取一个表格并将其保存为 csv 文件,并每 60 秒循环运行一次代码。 我希望每次循环运行时文件名都不同或编号。我已经尝试了以下
import pandas as pd
import time
starttime = time.time()
i=1
while True:
url = 'https://www.moneycontrol.com/india/indexfutures/nifty/9/2021-05-27/OPTIDX/CE/12800.00/true
optionchain = pd.read_html(url,attrs = {'class' : 'tblopt'})
chaindata = pd.DataFrame(optionchain[1])
chaindata1 = chaindata.rename(columns={0:'LTPcall',1:'Net Change',2:'Volume',3:'Open
Interest',4:'Change In Open Int',5:'StrikePrice',6:'LTPput',7:'Net Change',8:'Volume',9:'Open
Interest',10:'Change In Open Int'})
s = 'file'
x = (s+str(i))
chaindata1.to_csv(r'C:\Users\dell\Desktop\data\%x.csv')
i=+1
time.sleep(60.0 - ((time.time() - starttime) % 60.0))
通过运行这个,我得到第一个文件为 file1,然后是 file(x),它一直覆盖 file(x),我希望它流动 file1、file2、file3 等等
【问题讨论】:
-
不确定为什么您使用正则表达式作为文件名而不是 f 字符串 .... 您没有做任何事情来将文件编号替换为文件名。我建议使用路径 lib / Path 而不是文件名的不可移植代码
-
仅供参考,它是 scraping(和 scraper、scrape、scraped)不是报废
标签: pandas dataframe web-scraping export-to-csv