AttributeError: у объекта 'str' нет атрибута 'xpath' с функцией @href - PullRequest
0 голосов
/ 11 ноября 2019

Я очень плохо знаком с Python. Я использую следующий код для извлечения деталей каждого продукта.

Я собираю названия продуктов с исходной страницы и, используя каждую ссылку на продукт, собираю информацию о цене, SKU и фреймах со связанных страниц. Однако я получаю ошибку атрибута для команды web-link. Одной из возможных проблем может быть то, что анализируемая ссылка включает в себя «https://www.glassesshop.com".

. Я думаю, что основная проблема заключается в href =" https://www.glassesshop.com/eyeglasses/fz1370".. Код работал бы, если бы ссылка была href = "/ eyeglasses / fz1370" * 1007. *

Error Report:

  File "C:\Users\nazmu\projects\nextpage\nextpage\spiders\glass.py", line 14, in parse
link=name.xpath(".//@href").get()

AttributeError: у объекта 'str' нет атрибута 'xpath'

Код:

  def parse(self, response):
    names=response.xpath("//p[@class='pname col-sm-12']/a")
    for name in names:
        name=name.xpath(".//text()").get()
        link=name.xpath(".//@href").get()

        yield response.follow(url=link, callback=self.parse_glass, meta={'glass_name': name})

def parse_glass(self, response):
    name=response.request.meta['glass_name']
    price=response.xpath("//span[@class='product-price-original']/text()").get()
    sku=response.xpath("//ul[@class='col-12 col-sm-6 default-content']/li[1]/text()").get()
    frame=response.xpath("//a[@class='col01']/text()").get()

    yield{
        'glass_name': name,
        'price': price,
        'sku': sku,
        'frame': frame
        }

Я начал работать над Python на этой неделе. Я был бы очень признателен, если бы вы упомянули, какие конкретные изменения я должен внести в мои коды, чтобы исправить ошибку атрибута

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...