python - 如何使用 Python 从列表中的项目中删除 <br> 和 </br> 标签?

标签 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>
</tr>
</tr>
    <td align="left" bgcolor="#ffff99">
        <font size="2">
            <a href="some/link2.htm">
                <b>SomeMoreStuff</b>
            </a>
        </font>
    </td>
</tr>

我如何抓取信息:

my_list = []
for i in soup.find_all('a',href=re.compile('some/link')):
    my_list.append(str(i.find('b')))
    my_list.append(i['href'])

我需要从列表中的元素中删除 HTML 标记。
但是,当我创建循环时,它不会保存列表中的任何更改。我的列表看起来像这样:

my_list = ['<br>SomeStuff</br>','some/link.htm',
           '<br>SomeMoreStuf</br>', 'some/link2.htm',
           '<br>EvenMoreStuff</br>', 'some/link3.htm']

我试过这个:

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

我已经尝试过这个:

for i in my_list:
    if '<br>' in i:
        i = i.replace('<br>','')
    if '</br> in i:    
        i = i.replace('</br>','')

这些都不会对原始列表进行任何更改。我可以通过不将更改存储在任何内容中来打印出我想要的更正:

for i in my_list:
    i.replace('<br>','')

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

最佳答案

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

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

现在打印 my_list 输出:

['SomeStuff', 'some/link.htm', 'SomeMoreStuf', 'some/link2.htm', 'EvenMoreStuff', 'some/link3.htm']

您还可以使用列表理解,这将产生相同的结果:

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

关于python - 如何使用 Python 从列表中的项目中删除 <br> 和 </br> 标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43024953/

相关文章:

regex - eclipse 搜索并替换为通配符

python - 如何从 Python(或其他语言)的文本 block 中解析多个日期

python - Flask WSGI 在 Apache2 上的日志级别错误

python - 使用pypyodbc 1.3.4的Python中的字节字符串太长错误

python - 寻找一种更有效的方法从数据帧列中的字典创建新列

regex - 使用 ColdFusion 替换所有重读元音

python - 如何使用 python 连接两个 wav 文件?

python - While 循环没有迭代数组中的正确解决方案

子文件夹中的 Python 随机行

bash - 如何从文件中删除所有变音符号?