AttributeError: объект 'bytes' не имеет атрибута 'get' - PullRequest
0 голосов
/ 11 июля 2020

Я пытаюсь извлечь все торговые марки из 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 голосов
/ 11 июля 2020

Это может вам помочь.

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)
...