我对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)
产生所需的输出。