所以我在Python for Finance上使用这个series并且它一直给我错误 -
1) line 22, in <module> save_sp500_tickers() and
2) line 8, in save_sp500_tickers
soup = bs.BeautifulSoup(resp.text,'lxml')and
3) line 165, in __init__
% ",".join(features))
bs4.FeatureNotFound: Couldn't find a tree builder with the features you requested: lxml.
Do you need to install a parser library?
我已经待了一整天了,老实说,我拒绝放弃,任何对此的帮助都会有很大的帮助。此外,如果任何人有任何建议除泡菜以外的东西,并可以帮助写一些东西,允许我拨打SP500没有泡菜,这将是伟大的。
import bs4 as bs
import pickle
import requests
import lxml
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 :(得分:2)
按原样运行代码在我的系统上运行。也许正如Eric建议的那样,你应该安装lxml。
不幸的是,如果您使用的是Windows pip install lxml
,那么除非您设置了完整的编译器基础结构,否则它将无效。
幸运的是,您可以从http://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml获得预编译的二进制安装程序 - 确保选择与您的python版本匹配的版本,以及它是32位还是64位。
编辑:仅为了兴趣,请尝试更改行
soup = bs.BeautifulSoup(resp.text, 'html.parser') # use Python's built-in parser instead
有关可用解析器的列表,请参阅https://www.crummy.com/software/BeautifulSoup/bs4/doc/#installing-a-parser。
答案 1 :(得分:0)
从命令行尝试pip install lxml
以安装缺少的解析器库。