BeautifulSoup中find_all提取元素包含回车符如何处理?

beautifulsoup中find_all提取元素包含回车符如何处理?

如何在 bs4 中处理 find_all 提取元素时包含回车符的现象

beautifulsoup 的 find_all 函数在提取页面元素时,如果元素内容中包含回车符,会导致元素被拆分为多个元素。对于只想提取元素文本内容的情况,这可能会带来麻烦。

要解决此问题,可以在使用 .get_text() 方法获取元素文本之前,先对元素内容进行预处理。可以使用 replace 函数替换掉元素中的换行符('n')。

以下是如何修改代码以解决回车符问题:

from urllib.request import urlopen
from bs4 import BeautifulSoup

html = urlopen('http://www.pythonscraping.com/pages/warandpeace.html')
bs = BeautifulSoup(html.read(), 'html.parser')

name_list = bs.find_all('span', {'class':'green'}) 
for name in name_list:
    print(name.get_text().replace('
', ''))  # 添加 replace('
', '')

这样,元素文本中的换行符将被替换为空字符串,并且 get_text() 方法将返回一个不包含换行符的字符串。

以上就是BeautifulSoup中find_all提取元素包含回车符如何处理?的详细内容,更多请关注硕下网其它相关文章!