首页 > 解决方案 > 如何从 CSV 文件中替换 python 中字符串的一部分?

问题描述

我使用 Selenium 和 Web 驱动程序来抓取一些信息并输出 CSV 文件。

然后,我想使用读取的 CSV 文件来捕获 HTML 代码并删除部分字符串。

我尝试使用替换方法将其删除,但失败了。

以下是一个html示例:

<div class="ContentGrid">
    香港一年GDP 都3千幾億大美金
    <br>
    2成都6百幾
    <br>
    <br>
    <br>
</div>

<div class="ContentGrid">
    <blockquote>
        <div style="color: #0000A0;">
            <blockquote>
                <div style="color: #0000A0;">
                    藍店送聖誕卡比施生有乜下場
                    <img data-icons="???" src="/faces/wonder2.gif" alt="???">
                </div>
            </blockquote>
            <br>何只聖誕卡,直情要送埋聖誕樹賀一賀佢
            <img data-icons="#hehe#" src="/faces/hehe.gif" alt="#hehe#">
        </div>
    </blockquote>
    <br>
    施生只對聖誕卡有感覺。
    <br>
    <br>
    <br>
</div>

我有很多div class="ContentGrid"。然而,并不是每个div class="ContentGrid"人都有<blockquote>...</blockquote>. 所以我需要删除所有内容<blockquote>...</blockquote>

在此处输入图像描述

以下是我的预期结果:

<div class="ContentGrid">
    香港一年GDP 都3千幾億大美金
    <br>
    2成都6百幾
    <br>
    <br>
    <br>
</div>

<div class="ContentGrid">

    <br>
    施生只對聖誕卡有感覺。
    <br>
    <br>
    <br>
</div>

在此处输入图像描述

标签: pythonhtmlpython-3.xcsvwebdriver

解决方案


这个怎么样?

import re

html = """
blah blah blah
    <blockquote>
        blah blah blah
    </blockquote>
blah blah blah
"""

new_html = re.sub("<blockquote>.*</blockquote>", "", html, flags=re.DOTALL)

print(new_html)

re.sub 将第一个参数中传递给它的字符串替换为第二个参数中传递给它的字符串。第三个参数是您要搜索的字符串。块引号之间的 .* 表示选择除换行符之外的任意数量的未指定字符。flags=re.DOTALL 将强制 . 包括换行符。


推荐阅读