Scrapy : UnicodeEncodeError: 'gbk' codec can't encode character '\xa0' in position 2...错误

在用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了!

推荐阅读更多精彩内容