【问题标题】:BeautifulSoup partial div class matchingBeautifulSoup 部分 div 类匹配
【发布时间】:2017-07-31 05:37:57
【问题描述】:

我需要通过抓取从 Github 获取里程碑信息。 里程碑信息嵌入在 2 种类型的 div 类中: table-list-item milestone notduetable-list-item milestone

如何检索两个类中包含的信息?

我有: milestones = soup.find_all('div', {'class': 'table-list-item milestone'}) 但是这一行返回table-list-item milestone notdue的空列表

现在我正在做以下事情(丑陋的黑客):

milestones = soup.find_all('div', {'class':'table-list-item milestone'})
milestones.extend(soup.findAll('div', {'class': 'table-list-item milestone notdue'}))

有什么优雅的解决方案吗?

根据this 问题,BeautifulSoup 应该返回所有匹配的。我的问题正好相反!

【问题讨论】:

    标签: github beautifulsoup


    【解决方案1】:
    soup.find_all('div', {'class': 'milestone'})
    

    或使用 CSS 选择器:

    soup.select('.milestone')
    

    在bs4中,class是多值属性:

    它存储在列表中:[table-list-item, milestone, notdue] and [table-list-item, milestone]

    你需要做的是找到共享值,比如milestone

    【讨论】:

    • 我想知道,在这种情况下,[table-list-item, milestone] 的普遍性对于其他列表来说是不正确的。使用milestone 只会有帮助!谢谢
    猜你喜欢
    • 2011-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-01
    • 2011-08-27
    • 1970-01-01
    • 2014-09-24
    • 1970-01-01
    相关资源
    最近更新 更多