python爬取网页后利用BeautifulSoup解析html中的文字内容与图片并且顺序不变

python爬取网页后利用BeautifulSoup解析html中的文字内容与图片并且顺序不变

from bs4 import BeautifulSoup
html = """
<div class="ke_content" id="tab0" style="display:block">
    <div class="content_body">
        <table cellspacing="0" cellpadding="0" style="width:957px;color:#555555;font-family:"font-size:12px;background-color:#FFFFFF;">
            <tbody>
                <tr>
                    <td class="t_f" id="postmessage_2038139968" style="font-size:16px;font-family:"">
                        <span>
                            <span>功能介绍:span>
                            <br />
                            <br />
                            小天QQ智能营销/群管、
                            <br />
                            <br />
                            发卡系统、养号、定时 群发、转发、
                            <br />
                            智能回复 新人入群、
                            <br />
                            QQ空间、采集群 加群、
                            <br />
                            加好友、拉群、娱乐
                            <br />
                            功能太多具体请看图片
                            <br />
                            <img id="aimg_7991602" src="https://www.you85.net/data/attachment/forum/202208/15/182105i2jq4hi2eejb8rzq.jpg" class="zoom" width="600" />
                            <br />
                            <span>设备需求:span>
                            <br />
                            <br />
                            电脑(需要win10系统)
                            <br />
                            <br />
                            <div align="center">
                                <img id="aimg_7991602" src="https://www.you85.net/data/attachment/forum/202208/15/182105i2jq4hi2eejb8rzq.jpg" class="zoom" width="600" />
                                <br />
                                <img id="aimg_7991603" src="https://www.you85.net/data/attachment/forum/202208/15/182106w00oz0hk0mh00nk1.jpg" class="zoom" width="600" />
                                <br />
                                <img id="aimg_7991604" src="https://www.you85.net/data/attachment/forum/202208/15/182107kok50jhg5o3zk015.jpg" class="zoom" width="600" />
                            div>
                            <br />
                            <br />
                            软件无使用教程,因为功能较多,可能有部分功能缺失不完善,本站不提供一对一指导,如有需求,请自行测试,小白介意勿下单!
                        span>
                    td>
                tr>
            tbody>
        table>
    div>
div>

"""

soup  = BeautifulSoup(html,'lxml')
content_boyd = soup.find(name='div',attrs={'class':'content_body'})
for tag in content_boyd:
    print(tag.text)



运行后匹配不到img图片标签,只显示文字。我试了很多匹配字节点或子孙节点方法,要么文字重复,要么图片重复。

我想要达到的结果是下面这样:
把文字都匹配出来并且把图片带着img标签匹配出来,并且文字与img标签图片顺序不变

功能介绍:

小天QQ智能营销/群管、

发卡系统、养号、定时 群发、转发、
智能回复 新人入群、
QQ空间、采集群 加群、
加好友、拉群、娱乐
功能太多具体请看图片
="aimg_7991602" src="https://www.you85.net/data/attachment/forum/202208/15/182105i2jq4hi2eejb8rzq.jpg" class="zoom" width="600" />

设备需求:

电脑(需要win10系统)
="aimg_7991602" src="https://www.you85.net/data/attachment/forum/202208/15/182105i2jq4hi2eejb8rzq.jpg" class="zoom" width="600" />
="aimg_7991603" src="https://www.you85.net/data/attachment/forum/202208/15/182106w00oz0hk0mh00nk1.jpg" class="zoom" width="600" />
="aimg_7991604" src="https://www.you85.net/data/attachment/forum/202208/15/182107kok50jhg5o3zk015.jpg" class="zoom" width="600" />

软件无使用教程,因为功能较多,可能有部分功能缺失不完善,本站不提供一对一指导,如有需求,请自行测试,小白介意勿下单!

单独找文字和单独找图片都没问题,关键是你需要相对位置保持不变,就有难度了。
转成字符串然后通过正则式来操作确实是一个办法。

img


import re

from bs4 import BeautifulSoup

html = """
<div class="ke_content" id="tab0" style="display:block">
    <div class="content_body">
        <table cellspacing="0" cellpadding="0" style="width:957px;color:#555555;font-family:"font-size:12px;background-color:#FFFFFF;">
            <tbody>
                <tr>
                    <td class="t_f" id="postmessage_2038139968" style="font-size:16px;font-family:"">
                        <span>
                            <span>功能介绍:</span>
                            <br />
                            <br />
                            小天QQ智能营销/群管、
                            <br />
                            <br />
                            发卡系统、养号、定时 群发、转发、
                            <br />
                            智能回复 新人入群、
                            <br />
                            QQ空间、采集群 加群、
                            <br />
                            加好友、拉群、娱乐
                            <br />
                            功能太多具体请看图片
                            <br />
                            <img id="aimg_7991602" src="https://www.you85.net/data/attachment/forum/202208/15/182105i2jq4hi2eejb8rzq.jpg" class="zoom" width="600" />
                            <br />
                            <span>设备需求:</span>
                            <br />
                            <br />
                            电脑(需要win10系统)
                            <br />
                            <br />
                            <div align="center">
                                <img id="aimg_7991602" src="https://www.you85.net/data/attachment/forum/202208/15/182105i2jq4hi2eejb8rzq.jpg" class="zoom" width="600" />
                                <br />
                                <img id="aimg_7991603" src="https://www.you85.net/data/attachment/forum/202208/15/182106w00oz0hk0mh00nk1.jpg" class="zoom" width="600" />
                                <br />
                                <img id="aimg_7991604" src="https://www.you85.net/data/attachment/forum/202208/15/182107kok50jhg5o3zk015.jpg" class="zoom" width="600" />
                            </div>
                            <br />
                            <br />
                            软件无使用教程,因为功能较多,可能有部分功能缺失不完善,本站不提供一对一指导,如有需求,请自行测试,小白介意勿下单!
                        </span>
                    </td>
                </tr>
            </tbody>
        </table>
    </div>
</div>
 
"""

soup = BeautifulSoup(html, 'lxml')
content_boyd = soup.find(class_="t_f")
res = content_boyd.find_all(text=re.compile("[\u4e00-\u9fa5]"))
for tag in res:
    print(tag.replace("\n", "").replace(" ", ""))

有帮助点个采纳