使用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',']
标签:xpath,10,一键,出版社,广西师范大学,11,2017,回车 From: https://www.cnblogs.com/Magiclala/p/17980695