删除标记内的换行符<a>



我对python和BeautifulSoup都很陌生。最近,我尝试从本地文件中的一些HTML中提取每个<a>标记。我的部分代码如下:

with open(dir_path,encoding="utf-8_sig") as html_file:
soup =BeautifulSoup(html_file,'html.parser')
tag = soup.find('a')
print(tag)

输出看起来像这个

<a class="cmp-image__link" data-cmp-hook-image="link" href="/">
<img alt="logo" class="cmp-image__image" data-cmp-hook-image="image" itemprop="contentUrl" src="//imagesource"/>
</a>

我想要得到的是在<a>标签的块内没有换行符的字符串

<a class="cmp-image__link" data-cmp-hook-image="link" href="/"><img alt="logo" class="cmp-image__image" data-cmp-hook-image="image" itemprop="contentUrl" src="//imagesource"/></a>

我试过使用.strip().replace(),但都不起作用。请帮忙!

更新答案

这实际上在我的情况下很有效!!!来自@BrokenBenchmark

tag = '''<a class="cmp-image__link" data-cmp-hook-image="link" href="/">
<img alt="logo" class="cmp-image__image" data-cmp-hook-image="image" itemprop="contentUrl" src="//imagesource"/>
</a>'''
result = tag.replace('n', '')
print(result)

.strip()在这里不起作用,因为它只删除前导或尾部空白。

.replace()将在这里工作,但您需要分配其返回值,因为它不会在适当的位置修改字符串(因为Python字符串是不可变的(。

此:

tag = '''<a class="cmp-image__link" data-cmp-hook-image="link" href="/">
<img alt="logo" class="cmp-image__image" data-cmp-hook-image="image" itemprop="contentUrl" src="//imagesource"/>
</a>'''
result = tag.replace('n', '')
print(result)

产生所需的输出。

最新更新