获取在浏览器中打开html文件时将呈现的数据

2024-04-19 03:51:22 发布

您现在位置:Python中文网/ 问答频道 /正文

“我有一个.html文件。我想把数据读入我的一个变量,数据应该和在浏览器上呈现的一样,我只需要纯文本。请帮助我使用python代码段“


Tags: 文件数据文本html代码段浏览器
1条回答
网友
1楼 · 发布于 2024-04-19 03:51:22

您可以尝试以下脚本。我应该只打印可见的网页文本从HTML。你知道吗

代码:

from bs4 import BeautifulSoup


def tag_visible(element):
    if element == "Display Block":
        return True
    return False


def text_from_html(body):
    soup = BeautifulSoup(body, 'html.parser')
    texts = soup.findAll(text=True)
    visible_texts = filter(tag_visible, texts)
    return u" ".join(t.strip() for t in visible_texts)


with open("testhtml.html", "r") as open_html:
    html = open_html.read()
print(text_from_html(html))

输入HTML文件:

<center>
    <table cellpadding="0" cellspacing="0" border="0" style="width: 100%;">
        <tr colspan="2" style="width: 100%;">
            <td nowrap align="left" style="width: 100%;">
                <div style="height: 0px; overflow: hidden;">
                    <div>
                        <div>
                            <div>
                                <p>Hidden Block</p>
                            </div>
                        </div>
                    </div>
                </div>
                <div>
                    <div>
                        <div>
                            <div>
                                <p>Display Block</p>
                            </div>
                        </div>
                    </div>
                </div>
            </td>
        </tr>
    </table>
</center>
<br/>
<br/>
<br/>
<br/>
<br style="page-break-after: always" />

输出:

>>> python3 test.py 
Display Block

相关问题 更多 >