使用 bs4.beautifulsoup 提取带回车符的列表元素
在使用 beautiful soup 库来提取网页元素时,遇到了一个问题,即提取的元素中包含回车符。这导致一些元素被拆分为多个元素。
代码示例:
import requests from bs4 import beautifulsoup url = 'http://www.pythonscraping.com/pages/warandpeace.html' html = requests.get(url).text bs = beautifulsoup(html, 'html.parser') name_list = bs.find_all('span', {'class': 'green'}) for name in name_list: print(name.get_text())
运行此代码可能会导致安娜·帕夫洛夫娜·舍勒 (anna pavlovna scherer) 被拆分为两个元素:”安娜·帕夫洛夫娜”和”舍勒”。这是因为 html 源代码中安娜·帕夫洛夫娜和舍勒之间存在一个换行符。
可以使用 get_text() 方法来解决此问题,它会将元素的内容作为文本返回。但是,它会保留换行符。
解决方案:
可以使用 replace() 方法将回车符替换为空字符串。
for name in name_list: print(name.get_text().replace(' ', ''))
这样,安娜·帕夫洛夫娜·舍勒将被正确地识别为一个元素。