BeautifulSoup и IB reqFundamentalData - PullRequest
0 голосов
/ 28 мая 2020

получил последние две недели, у меня было немного беспокойства, и я надеюсь, что кто-то может указать мне в правильном направлении. Я пытаюсь разобрать возвращение reqFundamentalData, но безуспешно. Я думаю, это потому, что данные не хранятся в переменной и, следовательно, не могут быть переданы BeautifulSoup, я понятия не имею, почему! Любая помощь будет принята с благодарностью:

rom ib.opt import ibConnection, message
from ib.ext.Contract import Contract
from time import sleep

def fundamentalData_handler(msg):
    print(msg)

def error_handler(msg):
    print(msg)

tws = ibConnection(port=7497, clientId=123)
tws.register(error_handler, message.Error)
tws.register(fundamentalData_handler, message.fundamentalData)
tws.connect()

c = Contract()
c.m_symbol = 'AAPl'
c.m_secType = 'STK'
c.m_exchange = "SMART"
c.m_currency = "USD"

fundamentals = []  # Initialize variable to store candle

from bs4 import BeautifulSoup

tws.reqFundamentalData(1,c,'ReportsFinSummary')
# The fundamentals are returned as xml so make a beautifulsoup object
soup = BeautifulSoup(fundamentals,'xml')

# Parse the xml for the fields you want
CoID = soup.find('CoID', Type='CompanyName')
gross_margin = soup.find('Ratio', FieldName='TTMGROSMGN').string
ebitda = soup.find('Ratio', FieldName='TTMEBITD').string
print(CoID.string, gross_margin, ebitda)

sleep(2)

tws.disconnect()
...