首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >网络爬虫美汤

网络爬虫美汤
EN

Stack Overflow用户
提问于 2021-09-10 07:39:37
回答 1查看 32关注 0票数 0

当class=high打印平均时薪m/m时,如何过滤?

代码语言:javascript
运行
复制
  <tr class="calendar__row calendar_row calendar__row--grey calendar__row--no-grid nogrid" data-eventid="117390" data-ecobaseid="159" data-touchable="">

    <td class="calendar__cell calendar__impact impact calendar__impact calendar__impact--high">
        <div class="calendar__impact-icon calendar__impact-icon--screen">
            <span title="High Impact Expected" class="high"></span>
        </div>
        <div class="calendar__impact-icon calendar__impact-icon--print">
            <img src="https://resources.faireconomy.media/images/sprites/mm-impact-red.png" alt="" width="14" height="12">
        </div>
    </td>

    <td class="calendar__cell calendar__currency currency calendar__currency--right-of-impact" title="United States">
            US
    </td>   

    <td class="calendar__cell calendar__event event">
        <div>
            <span class="calendar__event-title">Average Hourly Earnings m/m</span>
        </div>
    </td>

EN

回答 1

Stack Overflow用户

发布于 2021-09-10 08:07:23

如果我没记错的话,您希望找到包含class="high"的日历行,然后打印事件:

代码语言:javascript
运行
复制
from bs4 import BeautifulSoup

html_doc = """
  <tr class="calendar__row calendar_row calendar__row--grey calendar__row--no-grid nogrid" data-eventid="117390" data-ecobaseid="159" data-touchable="">

    <td class="calendar__cell calendar__impact impact calendar__impact calendar__impact--high">
        <div class="calendar__impact-icon calendar__impact-icon--screen">
            <span title="High Impact Expected" class="high"></span>
        </div>
        <div class="calendar__impact-icon calendar__impact-icon--print">
            <img src="https://resources.faireconomy.media/images/sprites/mm-impact-red.png" alt="" width="14" height="12">
        </div>
    </td>

    <td class="calendar__cell calendar__currency currency calendar__currency--right-of-impact" title="United States">
            US
    </td>   

    <td class="calendar__cell calendar__event event">
        <div>
            <span class="calendar__event-title">Average Hourly Earnings m/m</span>
        </div>
    </td>

  </tr>
"""

soup = BeautifulSoup(html_doc, "html.parser")

for calendar_row in soup.select("tr.calendar_row"):
    if not calendar_row.find(class_="high"):
        continue

    event = calendar_row.find(class_="event")
    print(event.get_text(strip=True))

打印:

代码语言:javascript
运行
复制
Average Hourly Earnings m/m

或者:只使用CSS选择器:

代码语言:javascript
运行
复制
event = soup.select_one(".calendar_row:has(.high) .event")
print(event.get_text(strip=True))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69128804

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档