【问题标题】:How to use BS4 to .find all id css selector如何使用 BS4 查找所有 id css 选择器
【发布时间】:2020-12-06 19:25:00
【问题描述】:

我正在关注这个tutorial。但我被困在这里:

for container in containers:
    
    date = container.find('td', class_ = 'date-action').get_text()
    date = parser.parse(date.strip()[6:]).date()
    dateli.append(date) #make date relevant to current date

    description_container_1 = container.find('td', class_ = 'description TL_NPI_TransDesc')
    description_container_2 = description_container_1.find('a', class_ = 'transactionTitle')
    description = description_container_2.find('span', class_ = 'transTitleForEditDesc').get_text()
    descli.append(description)

    amount = container.find('td', class_ = ['amount positive TL_NPI_Amt', 'amount TL_NPI_Amt isDebit']).get_text()
    amtli.append(float(price_str(amount)))

我的问题是如何用 'div"[id*="wtDataMov"]' 替换 ('td', class_ = 'date-action'),因为它是识别我想要获取的行的唯一方法是大 id LT_BPINetEmpresas_wt37_block_wtMainContent_CW_Contas_Empresas_wtMovimentos_block_wtMovimentosList2_ctl04_wtDataMov 的特定部分。

【问题讨论】:

    标签: beautifulsoup


    【解决方案1】:

    要使用 CSS 选择器,请使用 .select()。在你的情况下,只找到第一个标签使用.select_one()

    ...
    
    date = container.select_one('div[id*=breakoutLeft]').get_text()
    

    【讨论】:

    • 感谢您的宝贵时间。已经尝试过,我收到错误:“AttributeError:ResultSet 对象没有属性'get_text'。您可能将元素列表视为单个元素。当您打算调用 find() 时是否调用了 find_all()? "
    • 请参考this post。如果您仍然找不到解决方案,请编辑您的完整代码。
    猜你喜欢
    • 1970-01-01
    • 2017-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多