为了账号安全,请及时绑定邮箱和手机立即绑定

使用 Python/BeautifulSoup 从多个 DIVS + DIV 样式中提取文本

使用 Python/BeautifulSoup 从多个 DIVS + DIV 样式中提取文本

一只斗牛犬 2023-05-09 14:50:16
我已经尝试了多种解决方案来解决这个问题,但无法弄清楚我有以下 HTML:<section id="content4" class="tab-content">                                                    <p>    <div class="Text_Title">Product 1</div>    <div style="display: inline-block;">Red Ball<div></p>                                                    <p>    <div class="Text_Title">Product 2</div>    <div style="display: inline-block;">Green Ball</div></p>                                                    <p>    <div class="Text_Title">Product 3</div>    <div style="display: inline-block;">Yellow Ball</div></p>    我试图从DIV = Text_Title和中提取文本STYLE = display: inline-block;我试图获得的输出:Product 1 - Red BallProduct 2 - Green BallProduct 3 - Yellow Ball
查看完整描述

1 回答

?
慕运维8079593

TA贡献1876条经验 获得超5个赞

用于findAll提取符合给定条件的 Tag 对象列表,然后zip并行迭代公开迭代。

from bs4 import BeautifulSoup


input_ = """<section id="content4" class="tab-content">

                                                    <p>

    <div class="Text_Title">Product 1</div>

    <div style="display: inline-block;">Red Ball<div></p>

                                                    <p>

    <div class="Text_Title">Product 2</div>

    <div style="display: inline-block;">Green Ball</div></p>

                                                    <p>

    <div class="Text_Title">Product 3</div>

    <div style="display: inline-block;">Yellow Ball</div></p>"""


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


for x, y in zip(soup.findAll("div", attrs={"class": "Text_Title"}),

                soup.findAll("div", attrs={"style": "display: inline-block;"})):

    print(x.text, "-", y.text)

Product 1 - Red Ball

Product 2 - Green Ball

Product 3 - Yellow Ball


查看完整回答
反对 回复 2023-05-09
  • 1 回答
  • 0 关注
  • 132 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信