识别美丽汤中令人困惑的价值目标

时间:2017-08-22 06:04:28

标签: python html beautifulsoup

这是一个涉及Python,Beautiful Soup和HTML以及Investopedia API的问题。

涉及的第一部分是这个Python块,它接受一个输入并根据给定的输入执行一个函数(action是raw_input):

if action == 'trade':
    symbol = raw_input("Symbol: ")
    order_type = raw_input("Order Type: ")
    quantity = raw_input("Quantity: ")

    if order_type == 'buy':
        client.trade(str(symbol), ita.Action.buy, int(quantity))
    elif order_type == 'sell':
        client.trade(str(symbol), ita.Action.sell, int(quantity))
    elif order_type == 'short':
        client.trade(str(symbol), ita.Action.short, int(quantity))

第二个参数(ita.Action.[order_type]),按照API文档中的指示编写,并且如代码本身所示,引用此块:

# input transaction type
[option.attrs.pop("selected", "") for option in trade_form.select("select#transactionTypeDropDown")[0]("option")]
trade_form.select("select#transactionTypeDropDown")[0].find("option", {"value": str(orderType.value)})["selected"] = True

该块使用Beautiful Soup中的.find来定位一个格式如下的下拉菜单:

<select name="transactionTypeDropDown" id="transactionTypeDropDown" style="width: auto;">
        <option value="1">Buy</option>
        <option value="2">Sell</option>
        <option value="3">Sell Short</option>
        <option value="4">Buy to Cover</option>
</select>

在API的文档中,列出的示例操作如下:

client.trade("GOOG", ita.Action.buy, 10)

但是,AttributeError在该给定行中报告'int' object has no attribute 'value',即使我尝试运行该行,因为它本身也是在文档中编写的。

File "/fakepath/MMIAS/ita/ita.py", line 233, in trade
    trade_form.select("select#transactionTypeDropDown")[0].find("option", {"value": str(orderType.value)})["selected"] = True
    AttributeError: 'int' object has no attribute 'value'

我假设有问题的int对象是下拉菜单中的option值,有了这个,我假设int,也许是1 - 4,占用orderType参数。那么,为什么会建议参数为ita.Action.[buy/sell/short/etc],而不仅仅是一个整数值?如果整数值满足该参数,为什么它会返回相同的错误?帮帮我理解。

0 个答案:

没有答案