生成列表时使用re.sub出现错误

对抓取的内容去掉 \xa0\n ,脑洞一开想到下面的方法:

[ re.sub('\xa0|\n','',x) for x in ele.select("div.subject.clearfix > div#info")[0].contents if x!='\n' ] 

然后就报了个错:

expected string or bytes-like object

若是按照:

[ x for x in ele.select("div.subject.clearfix > div#info")[0].contents if x!='\n' ]

来则正常. 难不成 for 前面的地方不能对 x 进行一道处理吗? 应该是可以的

阅读 3.1k
1 个回答

将x改成str(x)就好了

[ re.sub('\xa0|\n','',str(x)) for x in ele.select("div.subject.clearfix > div#info")[0].contents if x!='\n' ]
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进