[英]Beautiful soup ignore multiple spaces out of tags
當我使用 BeautifulSoup 從 html 獲取文本時,我發現它會忽略多個空格。 對於下面的示例,在</seg>
和<seg>
之間有 2 個空格,但是 output 只有一個空格,無論多少個空格,它都會 output 一個空格。
import bs4
text = "<line><seg>aaa</seg> <seg>bbb</seg></line>"
soup = bs4.BeautifulSoup(text)
print(soup.text)
print(soup.find_all(text=True))
output 是:
aaa bbb
['aaa', ' ', 'bbb']
但我真正想要的是:
aaa bbb
['aaa', ' ', 'bbb']
有任何想法嗎?
或者
javascript 中是否有等效方法? 獲取文本但忽略標簽外的多個空格
這是 html 解析器的正常行為。
看:
https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model/Whitespace
引用一些相關部分:
在 HTML 的情況下,空白在很大程度上被忽略——單詞之間的空白被視為單個字符,元素和外部元素的開頭和結尾的空白被忽略。
在元素周圍和內部創造空間是 CSS 的工作。
然而,它們不只是消失。
原始文檔中 HTML 元素之外的任何空白字符都在 DOM 中表示。 這是內部需要的,以便編輯器可以保留文檔的格式。 這意味着:
會有一些文本節點只包含空格,而一些文本節點的開頭或結尾會有空格。
大多數空白字符都被忽略了,並不是所有的都是......瀏覽器引擎中有一些規則可以決定哪些空白字符有用,哪些沒有 - 這些至少在CSS Text Module Level 3中部分指定,特別是關於CSS 空白屬性和空白處理細節的部分。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.