获取 S&P 500 股票代码列表

2024-01-08

所以我用这个在 Python for Finance 上,它总是给我错误——

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?

我已经为此工作了一整天,老实说我拒绝放弃,对此的任何帮助将不胜感激。另外,如果有人对pickle以外的东西有任何建议,并且可以帮助写一些东西,让我可以在没有pickle的情况下调用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()

按原样运行您的代码可以在我的系统上运行。也许,正如 Eric 建议的那样,您应该安装 lxml。

不幸的是,如果您使用的是 Windowspip install lxml除非您设置了完整的编译器基础结构,否则它不起作用,而您可能没有。

幸运的是,您可以从以下位置获取预编译的二进制安装程序http://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml http://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml- 确保您选择的 Python 版本与您的 Python 版本相匹配,以及它是 32 位还是 64 位。

Edit:只是为了兴趣,尝试改变线路

soup = bs.BeautifulSoup(resp.text, 'html.parser')   # use Python's built-in parser instead

See https://www.crummy.com/software/BeautifulSoup/bs4/doc/#installing-a-parser https://www.crummy.com/software/BeautifulSoup/bs4/doc/#installing-a-parser获取可用解析器的列表。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

获取 S&P 500 股票代码列表 的相关文章

随机推荐

  • 如何使用 Java 8 DateTime API 从序列值本地日期时间获取 POSIX 时间 (UTC)

    我有一个类似于POSIX 时间 https en wikipedia org wiki Unix time唯一的例外是它不被计算在内UTC https en wikipedia org wiki Coordinated Universal
  • Spring STS 挂起的原因可能是什么?

    有时在启动时 STS 会挂起 能找到原因吗 可能存在日志或可能在调试模式下启动 另外 我如何区分完全挂起和工作速度非常慢 谢谢 附 怎么修 这通常是出于与此处描述的相同原因加速日食的技巧 https stackoverflow com qu
  • C# Lambda 返回一些空值

    opencall Priority averages Where x gt x ProblemCode opencall ProblemCode SingleOrDefault Priority 上面的 lambda 语句返回一些空值 因为
  • 将 NSDate 转换为其他格式[重复]

    这个问题在这里已经有答案了 可能的重复 NSDateFormatter 和 yyyy MM dd https stackoverflow com questions 5087173 nsdateformatter and yyyy mm d
  • 是否逐行替换并将覆盖字典中的值两次?

    假设我有以下数据集 lst u v w x y lst rev list reversed lst dct dict zip lst lst rev df pd DataFrame A a b a c a B lst dtype categ
  • 如何在客户端使用 JavaScript 检查 webRTC 数据通道兼容性?

    WebRTC 数据通道仅在 Firefox nightly 中工作 如何在客户端查看 代码如下 if Firefox s d d test navigator userAgent test for Firefox x x or Firefo
  • 让 fields_for 与 has_many 关系一起工作

    我在生成嵌套模型表单时遇到问题 这是我的模型 class Workout lt ActiveRecord Base has many scores has many users through gt scores accepts neste
  • Fiddler 使网页浏览速度非常慢

    虽然 Fiddler 对我来说工作得很好 但它似乎确实使浏览速度变得非常慢 在 Fiddler 运行的情况下打开这个网站只需要大约十秒钟 如果我关闭它 它几乎会立即加载 我想知道这是否就是 Fiddler 的工作方式 或者是否有一个选项或设
  • 我如何克隆/复制某种 iOS 的 UIView?

    下面的屏幕截图有助于解释我想要做什么 这背后的想法是我有一个UIView 与各种不同的UI里面的元素 例如 假设我有一个UIView 里面有一个UILabel 现在我想复制UIView 里面有标签 但不知何故之后我可能需要对标签进行更改 例
  • Vue.JS 倒计时不起作用

    我有一个 vue 应用程序 但倒计时效果不好 其实我不知道为什么 View parent timer 我看到了很好的价值 视图数据 data function return timer 3 这是我的倒计时功能 countdown funct
  • 检查 windows/page/document/iframe 是否有焦点

    我已经问过类似的问题 但我需要它来解决更具体的情况 所以我决定提出一个新问题 以免混淆 检查窗口是否有焦点 https stackoverflow com questions 17389280 check if window has foc
  • 确保一次仅运行一个 setTimeout(处于活动状态)?

    递归setTimeout函数 getRandomProducts 被调用onload在html body标签中 如此不断地迭代 正在调用函数 setCategoryTreeonclick来自导航栏嵌套 ul 中的链接 然后 该函数将变量 m
  • 图像处理中的联合直方图和边缘直方图是什么?

    什么是图像处理中的联合直方图和边缘直方图 它们如何工作以及如何构建联合直方图和边缘直方图 如果可能的话 提供简单的示例 例如 如果我有 10 个维度的特征空间 并且想要构建一个直方图 每个维度量化为 20 个值 如何计算联合直方图和边缘直方
  • gem 已安装,但“rails”命令不起作用

    当我运行任何 Rails 命令时 例如rails s我收到以下错误 在任何来源中均找不到 diff lcs 1 1 2 尝试跑步bundle install 不过 我已经安装了 diff lcs 捆绑显示 diff lcs opt loca
  • 为什么使用 SpringJUnit4ClassRunner/MySQL/Spring/Hibernate 时事务不回滚

    我正在进行单元测试 我希望提交给 MySQL 数据库的所有数据都将被回滚 但事实并非如此 尽管我的日志显示正在发生回滚 但数据正在提交 我已经为此奋斗了几天 所以我的设置发生了很大变化 这是我当前的设置 登录DAOTest java Run
  • C++ 中紧密耦合的并行类层次结构

    对于上下文 我正在研究 C 人工生命系统 http github com taliesinb floatworld 涉及由循环神经网络控制的代理 但细节并不重要 我需要将代理的 大脑 和 身体 的两个对象层次结构分开 我想要各种不同的大脑和
  • 抛出新的异常最佳实践[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 以下是好的做法吗 如果不是 应该做什
  • 如何使用 .NET / GDI+ 禁用子采样?

    我正在尝试使用 Bitmap 类保存 JPEG 图像 我注意到无论我指定的质量级别如何 锐利的边缘总是模糊的 我发现这是由于一个或多个通道的二次采样造成的 如何在保存图像时禁用子采样 我目前正在使用这段代码 EncoderParameter
  • 在“世界风”中单击时禁用地球仪移动

    我正在尝试在 世界风 中单击鼠标禁用地球仪的移动 我期望能够做到 void disableGlobeDrag WorldWindowGLCanvas ww ww addMouseMotionListener new MyMouseMotio
  • 获取 S&P 500 股票代码列表

    所以我用这个在 Python for Finance 上 它总是给我错误 1 line 22 in