使用PYTHON程式抓取研究報告/ How to use Pthon to fetch Research report

Eddie
Eddie Newcomer
edited June 13 in 中文论坛

想透過Python程式抓取研究報告,
如以APPL為例子,抓取最新3則研究報告
底下是我的sample code
但目前都抓不到資料 (No results found.)
不知道是哪邊出了問題?

I want to fetch research reports using a Python program.
For example, using AAPL as a case, I want to fetch the latest 3 research reports.
Below is my sample code, but currently, I can't fetch any data (shows No results found.).

I don't know where the problem is.

import refinitiv.dataplatform as rdp
import json
import os

API_KEY = 'xxxxxxxx'

rdp.open_desktop_session(API_KEY)

symbol = 'AAPL.O'

def get_latest_reports(symbol, count=3):
try:
query = {
"query": {
"view": "research",
"filter": {
"symbol": symbol,
"language": "en",
"limit": count
}
}
}

response = rdp.search(query)

print("Query:", json.dumps(query, indent=2))
print("Response:", response)

if response is None or 'results' not in response:
print("No results found.")
return

reports = response['results']

for report in reports:
report_id = report['reportId']
pdf_url = report['pdfUrl']
pdf_response = rdp.get(pdf_url)

if pdf_response is None:
print(f"Failed to download report {report_id}")
continue

pdf_filename = f"{symbol}_{report_id}.pdf"
with open(pdf_filename, 'wb') as pdf_file:
pdf_file.write(pdf_response.content)

print(f"Downloaded {pdf_filename}")

except Exception as e:
print(f"Error: {e}")

get_latest_reports(symbol, count=3)

rdp.close_session()

Thanks.

Answers

  • Jirapongse
    Jirapongse ✭✭✭✭✭

    @Eddie

    Thank you for reaching out to us

    I understand that the rdp.search function is for the Search API.

    According to the query, you would like to use the Research API. The Search API doesn't support the Research view.

    To use the Research API, please refer to the Real-Time Research API User Guide. The service is available on the Data Platform APIs.

  • Hello @Eddie

    Research reports are also available through the Research messages delivery feed. You can see this tutorial and accompanying sample code for how to use this API.

    Using the Research API, does require additional entitlements and a Research UUID.