如何在从网站抓取数据时发生错误时阻止python脚本退出
我编写了一个python脚本,以1分钟的间隔从网站上抓取数据。但有时会发生错误,脚本将退出。是否有任何方法可以避免脚本在错误发生后退出 我的代码:如何在从网站抓取数据时发生错误时阻止python脚本退出,python,python-3.x,Python,Python 3.x,我编写了一个python脚本,以1分钟的间隔从网站上抓取数据。但有时会发生错误,脚本将退出。是否有任何方法可以避免脚本在错误发生后退出 我的代码: from requests import Session import pandas as pd from bs4 import BeautifulSoup import re def get_option_chain(symbol, expdate): if symbol == 'NIFTY': Base_url = (&
from requests
import Session
import pandas as pd
from bs4 import BeautifulSoup
import re
def get_option_chain(symbol, expdate):
if symbol == 'NIFTY':
Base_url = ("https://www.nseindia.com/live_market/dynaContent/live_watch/option_chain/optionKeys.jsp?symbol="+symbol+"&date="+expdate)
new_table = pd.DataFrame(columns=col_hdrs_name)
print(new_table)
new_table.to_csv('Option_Chain_Table_{}.csv'.format(symbol))
get_option_chain('NIFTY','17OCT2019')
schedule.every(1).minutes.do(get_option_chain,'NIFTY','17OCT2019')
while 1:
schedule.run_pending()
time.sleep(1)
错误:
Exception ('Connection aborted.', RemoteDisconnected('Remote end closed connection without
response')) in getting data for symbol NIFTY
Traceback (most recent call last):
File "C:\Python\Python37\NSE scrape fata.py", line 70, in <module>
schedule.run_pending()
File "C:\Python\Python37\lib\site-packages\schedule\__init__.py", line 563, in run_pending
default_scheduler.run_pending()
File "C:\Python\Python37\lib\site-packages\schedule\__init__.py", line 94, in run_pending
self._run_job(job)
File "C:\Python\Python37\lib\site-packages\schedule\__init__.py", line 147, in _run_job
ret = job.run()
File "C:\Python\Python37\lib\site-packages\schedule\__init__.py", line 466, in run
ret = self.job_func()
File "C:\Python\Python37\NSE scrape fata.py", line 41, in get_option_chain
soup = BeautifulSoup(page.content, 'html.parser')
UnboundLocalError: local variable 'page' referenced before assignment
异常('Connection aborted')、RemoteDisconnected('Remote end closed Connection without'
获取符号NIFTY的数据时的响应)
回溯(最近一次呼叫最后一次):
文件“C:\Python\Python37\NSE scrape fata.py”,第70行,在
schedule.run_pending()
文件“C:\Python\Python37\lib\site packages\schedule\\uuuuu init\uuuuu.py”,第563行,正在运行中
默认\u计划程序。运行\u挂起()
文件“C:\Python\Python37\lib\site packages\schedule\\uuuuu init\uuuuuu.py”,第94行,正在运行中
自我运行作业(作业)
文件“C:\Python\Python37\lib\site packages\schedule\\uuuuu init\uuuuu.py”,第147行,在运行作业中
ret=job.run()
文件“C:\Python\Python37\lib\site packages\schedule\\uuuu init\uuuu.py”,第466行,正在运行
ret=self.job_func()
文件“C:\Python\Python37\NSE scrape fata.py”,第41行,在get\u option\u链中
soup=BeautifulSoup(page.content,'html.parser')
UnboundLocalError:赋值前引用的局部变量“page”
是的,您可以使用尝试…除了
:
来自请求导入会话的
作为pd进口熊猫
从bs4导入BeautifulSoup
进口稀土
导入时间
def get_选项_链(符号,expdate):
如果symbol=='NIFTY':
基本url=(“https://www.nseindia.com/live_market/dynaContent/live_watch/option_chain/optionKeys.jsp?symbol=“+symbol+”&date=“+expdate)
新表格=pd.DataFrame(列=列hdrs\U名称)
打印(新表格)
新建表格到csv('Option_Chain_table_{}.csv'.格式(符号))
获取选项链('NIFTY','2019年10月17日')
计划。每(1)分钟。做一次(获取选项链,'NIFTY','2019年10月17日')
而1:
尝试:
schedule.run_pending()
时间。睡眠(1)
除:
持续
另外,您没有导入time
模块,而是使用了time.sleep(1)
。所以,输入时间。
我也建议您阅读。您是否打算向我们展示导致异常的真实代码?