【问题标题】:Web scrape data from exchange using API使用 API 从交换中抓取数据
【发布时间】:2022-11-26 20:38:45
【问题描述】:

我正在寻找从以下网站抓取包含“交易的内幕股票数量”的第二张表格:

https://www.nasdaq.com/market-activity/stocks/aapl/insider-activity

如果可能的话,我最好需要有人来展示如何使用 Nasdaq api。我相信我通常使用 webscrape(使用 beautifulSoup)的方式对于这项任务来说效率不高。

我有一些现有代码可以帮助使用它的 api 从同一网站获取数据,但用于获取不同的信息。最好,我只需要一个不同的 api 端点,然后按照类似结构对以下代码进行一些调整:

import requests
import json

nasdaq_dict = {}

url = 'https://api.nasdaq.com/api/company/AAPL/institutional-holdings?limit=15&type=TOTAL&sortColumn=marketValue&sortOrder=DESC'

headers = {
    'accept': 'application/json, text/plain, */*',
    'origin': 'https://www.nasdaq.com',
'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.5112.79 Safari/537.36'
}

r = requests.get(url, headers=headers)

nasdaq_dict['activePositions'] = r.json()['data']['activePositions']['rows']
nasdaq_dict['newSoldOutPositions'] = r.json()['data']['newSoldOutPositions']['rows']

with open('AAPL_institutional_holdings.json', 'w') as f:
    json.dump(nasdaq_dict, f, indent=4)

【问题讨论】:

    标签: python json api


    【解决方案1】:

    这是获取该数据的一种方法(作为字典:请说明是否需要它作为表格):

    import requests
    
    headers = {
        'accept-language': 'en-US,en;q=0.9',
        'origin': 'https://www.nasdaq.com/',
        'referer': 'https://www.nasdaq.com/',
        'accept': 'application/json, text/plain, */*',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36'
    }
    
    data = requests.get('https://api.nasdaq.com/api/company/AAPL/insider-trades?limit=15&type=ALL&sortColumn=lastDate&sortOrder=DESC', headers=headers).json()['data']['numberOfSharesTraded']
    print(data)
    

    终端结果:

    {'headers': {'insiderTrade': 'INSIDER TRADE', 'months3': '3 MONTHS', 'months12': '12 MONTHS'}, 'rows': [{'insiderTrade': 'Number of Shares Bought', 'months3': '0', 'months12': '0'}, {'insiderTrade': 'Number of Shares Sold', 'months3': '1,317,881', 'months12': '1,986,819'}, {'insiderTrade': 'Total Shares Traded', 'months3': '1,317,881', 'months12': '1,986,819'}, {'insiderTrade': 'Net Activity', 'months3': '(1,317,881)', 'months12': '(1,986,819)'}]}
    

    【讨论】:

      猜你喜欢
      • 2021-11-16
      • 2022-11-17
      • 1970-01-01
      • 2021-04-05
      • 2014-06-08
      • 2015-08-12
      相关资源
      最近更新 更多