Scrapy : UnicodeEncodeError: 'gb
2022-01-06 本文已影响0人
朝畫夕拾
在用scrapy爬取网页数据时,Selector解析网页数据时 , 会出现如题的错误。
response.xpath('//*[@id="pagelist"]/div/text()').extract()[0]
这样写打印出来,是不会报错的。
response.xpath('//*[@id="pagelist"]/div/text()')
加上extract()就会报这样子的错。因为extract()返回选中内容的Unicode字符串。网页中如果出现 就会变成\xa0的字符就会出现如题的错误。
如何解决呢??? 上代码:
response.xpath('//*[@id="pagelist"]/div/text()').re(r'[^\xa0]'))
没错,就是用正则表达式去除掉\xa0即可。然后这样处理后得到的是一个[]的数组,要想得到字符串类型的数据
"".join(response.xpath('//*[@id="pagelist"]/div/text()').re(r'[^\xa0]')).strip()
OK了!