python - 麻烦 Webscraping 寻求 alpha
问题描述
我正在编写一个脚本,该脚本使用 python 和 anaconda 虚拟环境对特定股票代码的 alpha 追随者数据进行网络抓取。我以前曾就此提出过问题,我收到的答案在一定程度上有所帮助。由于某种原因,当我尝试通过在列表中添加更多内容或更改代码名称来更改代码名称时,代码会立即失败,而其他时候它可以正常工作。我想知道是否有人对我的代码有任何建议/编辑,或任何其他获取这些数据的方法。附件是我的代码和输出
代码:
import requests
tickers = [ "atvi", "goog", "aapl", "amzn", "brk.b", "brk.a", "nflx", "snap"]
with requests.Session() as s:
for ticker in tickers:
r = s.get('https://seekingalpha.com/memcached2/get_subscribe_data/{}?id={}'.format(ticker, ticker)).json()
print(ticker, r['portfolio_count'])
输出: 这是我收到的输出错误
解决方案
如果您输入了错误的股票代码或服务器在处理您的请求时遇到问题,它会返回空答案并将状态代码设置为不同于200
(例如403
)的内容。您需要检查该信息:
import requests
tickers = [ "xxx", "atvi", "goog", "aapl", "amzn", "brk.b", "brk.a", "nflx", "snap"]
with requests.Session() as s:
for ticker in tickers:
response = s.get('https://seekingalpha.com/memcached2/get_subscribe_data/{}?id={}'.format(ticker, ticker))
if response.status_code != 200:
print(ticker, 'ERROR!')
continue
r = response.json()
print(ticker, r['portfolio_count'])
印刷:
xxx ERROR!
atvi 84,194
goog 1,038,749
aapl 2,076,496
amzn 817,339
brk.b 198,362
brk.a 74,682
nflx 368,925
snap 95,903
推荐阅读
- html - 如何对齐
向右,使 下面停留在下面,我可以在这个左边放一张图片 ? - php - 我怎样才能输出这种数组?
- javascript - 通过 ReactJS 中的 .getUserMedia 访问后单击断开网络摄像头
- python-3.x - 如何使用 GraphQL?
- delphi - Indy 多端口 tcp 未在特定端口接收数据
- typescript - 在 TypeScript 中使用 useNewUrlParser 和 mongoose 输入错误
- python - os.system('cls') 不清除 Pycharm 中的屏幕?
- php - 我想在 php 条件下调用 {{$barang->stock}} 并返回文本值
- swift - 快速设置多个 TableView 高度
- javascript - 如何修复“for”循环中的“let i = 0”值在完成循环后再次变为0?