Scrapy - очищать URL-адреса суффиксов только при изменении последнего параметра - PullRequest
0 голосов
/ 03 апреля 2020

Я хочу очистить некоторые URL, которые изменяют только последний параметр, называемый «asin». URL -> https://www.amazon.es/dp/ '+ asin

У меня есть список этих asin в CSV. Я пытаюсь разобраться с этим кодом с любым результатом.

import scrapy
from csv import DictReader

class CommentSpider(scrapy.Spider):
     name = 'comments'
     allowed_domains = ['amazon.es']
     def start_requests(self):
         with open("adresses.csv") as asin:
              for i in DictReader(asin):
                  link= ('https://www.amazon.es/dp/'+i)

                  yield Request(url = link,
                        callback = self.parse,
                        method ='GET')

    def parse(self, response):
         items = AmazonItem()

         Product_name = response.css('#productTitle.a-size-large').css('::text').extract()
         Rating= response.css('.a-icon-alt::text')[0].extract()
         Comments =  response.css('#acrCustomerReviewText').css('::text').extract()

         items['Product_name'] = Product_name
         items['Rating'] = Rating
         items['Comments'] = Comments

         yield items

Не могли бы вы помочь мне со сценарием, пожалуйста?

Спасибо!

1 Ответ

1 голос
/ 03 апреля 2020
TypeError: can only concatenate str (not "collections.OrderedDict") to str

Эта ошибка говорит сама за себя, вы не можете объединить строку и словарь

Вы можете напечатать эту переменную i, чтобы посмотреть, что у нее есть, вам нужно изменить свой код примерно так, как показано ниже

for i in DictReader(asin):
    self.logger.info(i)
    link= ('https://www.amazon.es/dp/'+i['column_name_in_your_csv'])

    yield Request(url = link,
        callback = self.parse,
        method ='GET')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...