【发布时间】:2018-04-04 10:48:46
【问题描述】:
我正在尝试从网站上抓取文本,同时保留其<br> 标签,以便使用'\n's 格式化我的输出。但是,我找不到一种有效的方法来做到这一点。 (注意:我不能使用get_text(separator='\n'),因为<a> 之类的标签会将其分成尴尬的间距。)
我可能会尝试抓取的示例文本如下所示:
<div class="example">
Lorem ipsum dolor sit amet?
<br>
consectetur adipiscing elit.
<br>
Vivamus nec <a class="someLink" href="example.com">arcu</a>
erat.
<br>
Suspendisse a mauris vestibulum, rhoncus.
<br>
</div>
我知道我可以有一些类似的代码:
def get_stuff(message):
soup = BeautifulSoup(urllib.request.urlopen(url).read(), 'html.parser')
example = soup.find("div", class_="example").get_text()
它会得到很好的文本。但同样,我希望能够使用<br> 标签对其进行格式化。我认为soup.find("div", class_="example").get_text(separator="br") 可以解决问题,但似乎没有办法在get_text() 中使用<br> 作为分隔符。
除了围绕<div>、<a> 以及其他可能有标签的东西之外,还有什么方法可以解决吗?
【问题讨论】:
-
使用
.text保留文本中的换行符和空格。你试过吗?或者,这不是您想要的吗? -
@KeyurPotdar 是的,这不是我想要的,因为它忽略了我想用换行符替换的 br 标签。
标签: python python-3.x web-scraping beautifulsoup