我正在尝试学习python,而且我一直在关注youtube上的教程。到目前为止,一切都很好,但是到了一个地步,如果我运行代码,它可以毫无错误地完成,但是它不会打印出我想要的内容。我完全抄袭了教程中的内容,但找不到区别。只是困惑为什么它可以完成代码但不能完成代码。任何帮助都会很棒,我觉得这可能是我忽略的简单解决方法。
干杯
import bs4 as bs
import pickle
import requests
def save_sp500_tickers():
resp = requests.get('https://en.wikipedia.org/wiki/List_of_S%26P_500_companies')
soup = bs.BeautifulSoup(resp.text, "lxml")
table = soup.find('table',{'class': 'wikitable sortable'})
tickers = []
for row in table.findALL('tr')[1:]:
ticker = row.findALL('td')[0].text
tickers.append(ticker)
with open("sp500tickers.pickle","wb") as f:
pickle.dump(tickers, f)
print(tickers)
return tickers
save_sp500_tickers()
答案 0 :(得分:0)
save_sp500_tickers()调用错误地缩进,因此它是函数定义的一部分,将不会执行。
答案 1 :(得分:0)
谢谢大家。删除save_sp500_tickers()的缩进有效。 我也必须摆脱
for row in table.findALL('tr')[1:]:
ticker = row.findALL('td')[0].text
并将其变成
for row in table.find_all('tr')[1:]:
ticker = row.find_all('td')[0].text
原来BeautifulSoup在较新的版本中对其进行了更改。