PHP前端开发

BeautifulSoup提取带回车符的列表元素如何正确处理?

百变鹏仔 5天前 #Python
文章标签 正确处理

使用 bs4.beautifulsoup 提取带回车符的列表元素

在使用 beautiful soup 库来提取网页元素时,遇到了一个问题,即提取的元素中包含回车符。这导致一些元素被拆分为多个元素。

代码示例:

import requestsfrom bs4 import beautifulsoupurl = 'http://www.pythonscraping.com/pages/warandpeace.html'html = requests.get(url).textbs = 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('', ''))

这样,安娜·帕夫洛夫娜·舍勒将被正确地识别为一个元素。