xpath 一键去除前后空白、回车、换行

Magiclala的博客 / 2024-01-22 / 原文

使用xpath方式,打印结果,经常出现大量换行、空格等情况

from lxml import etree
# data = etree.parse('./素材/示例网站.html')

parser = etree.HTMLParser(encoding="utf-8") # 出现读取错误时,需要加入parser参数
data = etree.parse('./素材/示例网站.html', parser=parser)
chuban = data.xpath('//p[@class="color-gray"]/text()')
print(chuban)

# 打印结果,出现大量换行、空格等情况
['\r\n                        [意] 埃莱娜·费兰特 / 人民文学出版社 / 2017-10\r\n                    ', 
 '\r\n                        [美] 彼得·布雷瓦 / 后浪丨文化发展出版社 / 2017-11\r\n                    ', 
 '\r\n                        刘震云 / 长江文艺出版社 / 2017-11-1\r\n                    ', 
 '\r\n                        [美] 约翰·约瑟夫·亚当斯 编 / 新星出版社 / 2017-10\r\n                    ', 
 '\r\n                        [英] 约翰·福尔斯 / 百花文艺出版社 / 2017-10\r\n                    ', 
 '\r\n                        [俄] 列夫·托尔斯泰 / 东方出版社 / 2017-10\r\n                    ', 
 '\r\n                        [美] 芭芭拉·金索沃 / 南海出版公司 / 2017-10\r\n                    ', 
 '\r\n                        [英] 格雷厄姆·格林 / 江苏凤凰文艺出版社 / 2017-11\r\n                    ', 
 '\r\n                        [加] 艾丽丝·门罗 / 理想国丨广西师范大学出版社 / 2017-11-1\r\n                    ', 
 '\r\n                        木心 / 理想国 | 广西师范大学出版社 / 2017-10\r\n                    ', 
 '\r\n                        [日] 岩井俊二 / 浙江文艺出版社 / 2017-10\r\n                    ', 
 '\r\n                        [英] 萨拉·沃特斯 / 世纪文景/上海人民出版社 / 2017-10\r\n                    ', 
 '\r\n                        [美] 菲利普·迪克 / 译林出版社 / 2017-10\r\n                    ', 
 '\r\n                        [日] 东野圭吾 / 南海出版公司 / 2017-11\r\n                    ', 
 '\r\n                        程波 / 张乐山 / 沐来文化/鹭江出版社 / 2017-9\r\n                    ', 
 '\r\n                        [日] 涩泽龙彦 / 广西师范大学出版社 / 2017-9\r\n                    ']

使用一个推导式循环,直接替换掉原代码,可实现一步解决。(这里aaa可以随意取名,不冲突即可)

chuban = [aaa.strip() for aaa in data.xpath('//p[@class="color-gray"]/text()')]
# chuban = data.xpath('//p[@class="color-gray"]/text()') # 被替换的原代码
print(chuban)

#
['[意] 埃莱娜·费兰特 / 人民文学出版社 / 2017-10', '[美] 彼得·布雷瓦 / 后浪丨文化发展出版社 / 2017-11', 
 '刘震云 / 长江文艺出版社 / 2017-11-1', '[美] 约翰·约瑟夫·亚当斯 编 / 新星出版社 / 2017-10', 
 '[英] 约翰·福尔斯 / 百花文艺出版社 / 2017-10', '[俄] 列夫·托尔斯泰 / 东方出版社 / 2017-10', 
 '[美] 芭芭拉·金索沃 / 南海出版公司 / 2017-10', '[英] 格雷厄姆·格林 / 江苏凤凰文艺出版社 / 2017-11', 
 '[加] 艾丽丝·门罗 / 理想国丨广西师范大学出版社 / 2017-11-1', '木心 / 理想国 | 广西师范大学出版社 / 2017-10', 
 '[日] 岩井俊二 / 浙江文艺出版社 / 2017-10', '[英] 萨拉·沃特斯 / 世纪文景/上海人民出版社 / 2017-10', 
 '[美] 菲利普·迪克 / 译林出版社 / 2017-10', '[日] 东野圭吾 / 南海出版公司 / 2017-11', 
 '[美] 米奇·阿尔博姆 / 南海出版公司 / 2017-11', '[英] 约翰·克利兰 / 江苏凤凰文艺出版社 / 2017-9', 
 '[美] 菲利普·迪克 / 译林出版社 / 2017-10', '[意大利] 亚历山德罗·巴里科 / 浦睿文化·湖南文艺出版社 / 2017-10',']