如何删除<;br>;及</br>;使用Python从列表中的项目中添加标记?

如何删除<;br>;及</br>;使用Python从列表中的项目中添加标记?,python,python-3.x,replace,web-scraping,Python,Python 3.x,Replace,Web Scraping,我从中抓取的Html: <tr> <td align="left" bgcolor="#ffff99"> <font size="2"> <a href="some/link.htm"> <b>SomeStuff</b> </a> </font> </td> &l

我从中抓取的Html:

<tr>
    <td align="left" bgcolor="#ffff99">
        <font size="2">
            <a href="some/link.htm">
                <b>SomeStuff</b>
            </a>
        </font>
    </td>
</tr>
</tr>
    <td align="left" bgcolor="#ffff99">
        <font size="2">
            <a href="some/link2.htm">
                <b>SomeMoreStuff</b>
            </a>
        </font>
    </td>
</tr>
我需要从列表中的元素中删除HTML标记。
但是,当我创建循环时,它不会在列表中保存任何更改。我的列表如下所示:

my_list = ['<br>SomeStuff</br>','some/link.htm',
           '<br>SomeMoreStuf</br>', 'some/link2.htm',
           '<br>EvenMoreStuff</br>', 'some/link3.htm']
my_list=['
SomeStuff
','some/link.htm', “
SomeMoreStuf
”,“some/link2.htm”, “
EvenMoreStuff
”,“some/link3.htm']
我试过这个:

for i in my_list:
    i = i.replace('<br>','')
    i = i.replace('</br>','')
对于我的_列表中的i:
i=i.replace(“
”,“) i=i.replace(“
”,“)
我试过这个:

for i in my_list:
    if '<br>' in i:
        i = i.replace('<br>','')
    if '</br> in i:    
        i = i.replace('</br>','')
对于我的_列表中的i:
如果i中的“
”: i=i.replace(“
”,“) 如果“
在i中: i=i.replace(“
”,“)
所有这些都不会改变原始列表。我可以通过不存储任何更改来打印所需的更正:

for i in my_list:
    i.replace('<br>','')
对于我的_列表中的i:
i、 替换(“
”,“”)

但是,我需要将更改保存在列表中。

所有解决方案都有效,您只是忘记了更新列表

for i, element in enumerate(my_list):
    element = element.replace('<br>','')
    element = element.replace('</br>','')
    my_list[i] = element

如果所有字符串的开头和结尾都只有标记,则可以对字符串进行切片以删除它们。请尝试以下代码:

for lst in my_list:
    if '<br>' in lst:
        my_list.append(lst[4:-5])
        my_list.remove(lst)
请试一试

或者

i.get_text()

我认为其中一个应该直接向您提供数据的内容。因此,在此之后不需要删除标记


希望有帮助。

因此,我最终解决了这个问题,将这两个元素写入excel文件,然后在excel中使用“查找并替换”

您需要(a)创建一个新列表并将修改后的字符串附加到该新列表中,(b)使用列表理解,或(c)通过索引修改原始列表。实际上,您应该从一开始就发布所有问题!有一种更简单的方法可以完成此操作,而不是删除列表中的标记。有关详细信息,请参阅我的答案。我已尝试了这两种方法,没有错误,但列表不会发生任何更改。请尝试for循环或列表压缩然后立即打印(我的清单)。我可以向你保证,它会改变列表,反映我写的输出。不,如果我可以添加一个屏幕截图,我会给你看。所以如果我创建自己的列表并尝试它,它会工作,但对于我刮的列表,它不工作……奇怪。在你的问题中包括你如何刮它,然后我会研究它。我建议你尝试我的方法,u从beautifulsoup使用.get_text()的内置方法。这将使您的生活更加轻松。出于某种原因,它不断返回“无类型对象只是没有属性文本”错误。
for lst in my_list:
    if '<br>' in lst:
        my_list.append(lst[4:-5])
        my_list.remove(lst)
for i, lst in enumerate(my_list):
      if '<br>' in lst:
          my_list[i] = lst[4:-5]
str(i.find('b'))
i.get_text()
i.b.get_text()