AttributeError:“ bytes”对象没有属性“ get”

时间:2020-07-11 05:45:08

标签: python-3.x web-scraping scrapy

我正在尝试从https://www.gizbot.com/mobile-brands-in-india/中提取所有品牌名称。 下面是mobiles_spiders.py文件的代码

class MobilesSpider(scrapy.Spider):
    name = "mobiles"

    def start_requests(self):
        urls = [
            'https://www.gizbot.com/mobile-brands-in-india/',
           
        ]
        for url in urls:
            yield scrapy.Request(url=url, callback=self.parse)

    def parse(self, response):
        page = response.url.split("/")[-2]
        filename = 'mobiles-%s.html' % page
        with open(filename, 'wb') as f:
            f.write(response.xpath(str.encode('.//div[has-class("all-brands-block-desc-brand")]/text()').get()))
        self.log('Saved file %s' % filename)

但是代码给了我错误 AttributeError:“ bytes”对象没有属性“ get” 我需要建议使用什么函数代替get()来提取包含品牌名称的所有div元素。 任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

这可能会对您有所帮助。

import scrapy
    
class MobilesSpider(scrapy.Spider):
    name = "mobiles"

    def start_requests(self):
        urls = [
            'https://www.gizbot.com/mobile-brands-in-india/',

        ]
        for url in urls:
            yield scrapy.Request(url=url, callback=self.parse)

    def parse(self, response):
        page = response.url.split("/")[-2]
        filename = 'mobiles-%s.html' % page
        with open(filename, 'wb') as f:
            f.write(response.xpath('.//div[has-class("all-brands-block-desc-brand")]/text()').get().encode('utf-8'))
        self.log('Saved file %s' % filename)
相关问题