我有一個奇怪的問題,python 終端拋出一個AttributeError: 'NoneType' object has no attribute 'find'但我在 Flask 調(diào)試控制臺中沒有收到任何錯誤并且應(yīng)用程序正常工作,沒有任何問題。python 控制臺中的錯誤讓我抓狂,我想了解發(fā)生了什么。我的應(yīng)用程序的布局如下。我呈現(xiàn)一個主頁,該主頁通過 html 表單檢索用戶的輸入并獲取該值,在本例中為股票代碼,并重定向到函數(shù) infoPage,其中股票代碼用于執(zhí)行一些網(wǎng)絡(luò)抓取。@app.route('/', methods=['GET', 'POST'])def stockTickerInput(): if request.method == "POST": ticker = request.form['ticker'].upper() return redirect(url_for('infoPage', ticker=ticker)) return render_template('home.html')出于某種原因,python 在 flask 重定向到infoPage. 我知道這一點,因為一旦呈現(xiàn),我就會在用戶甚至在 html 表單中輸入股票行情之前home.html收到錯誤。AttributeError: 'NoneType' object has no attribute 'find'@app.route('/<ticker>')def infoPage(ticker): # scrapes stock chart/company info from finviz def stockInfo(): url = 'https://finviz.com/quote.ashx?t=' + ticker html = requests.get(url, headers={'User-Agent': 'Mozilla/5.0'}) soup = BeautifulSoup(html.text, 'lxml') # finds news table within finviz website stock_website = soup.find('table', class_="fullview-title") company_name = stock_website.find('a', class_='tab-link').text return company_name # functions to be passed as variables in jinja2 template info = stockInfo() return render_template('stockInfo.html', ticker=ticker, info=info)
1 回答

DIEA
TA貢獻(xiàn)1820條經(jīng)驗 獲得超3個贊
這部分:
if result is None: # if result is none means ticker exists return redirect(url_for('infoPage', ticker=ticker))
你的代碼執(zhí)行是因為result
從這一行得到一個 None 的值:
result = match.find('h4').text
return redirect(url_for('infoPage', ticker=ticker))
因此,在你跑步之前觸發(fā)ever return render_template('stockInfo.html', ticker=ticker, info=info)
。
添加回答
舉報
0/150
提交
取消