scrapy抓取某些网站出现AttributeError: 'Response' object has no attribute 'body_as_unicode'的解决办法
AttributeError: 'Response' object has no attribute 'body_as_unicode'
出现这个问题,主要是网站的header里面没有content-type字段,scrapy就抽风了,不知道抓取网页的类型,其实解决办法很简单。
把pase方法进行简单的改写即可
def parse(self, response): hxs=Selector(response) detail_url_list = hxs.xpath('//li[@class="good-list"]/@href').extract() for url in detail_url_list: if 'goods' in url: yield Request(url, callback=self.parse_detail)
写成下面这个样子即可
def parse(self, response): hxs=Selector(text=response.body) detail_url_list = hxs.xpath('//li[@class="good-list"]/@href').extract() for url in detail_url_list: if 'goods' in url: yield Request(url, callback=self.parse_detail)
注意这句话:
hxs=Selector(text=response.body)
相关文章