Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Scrapy-仅在更改最后一个参数时刮取多个URL_Python_Web Scraping_Scrapy - Fatal编程技术网

Python Scrapy-仅在更改最后一个参数时刮取多个URL

Python Scrapy-仅在更改最后一个参数时刮取多个URL,python,web-scraping,scrapy,Python,Web Scraping,Scrapy,我想删除一些只更改最后一个参数“asin”的URL。url为->'+asin 我在csv中有这些asin的列表。我正试图用这段代码获得任何结果 import scrapy from csv import DictReader class CommentSpider(scrapy.Spider): name = 'comments' allowed_domains = ['amazon.es'] def start_requests(self):

我想删除一些只更改最后一个参数“asin”的URL。url为->'+asin

我在csv中有这些asin的列表。我正试图用这段代码获得任何结果

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
你能帮我看一下剧本吗

谢谢

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

你是怎么开始蜘蛛的?也许这个调用有问题。@kutschkem我不明白你的要求。你只看到我的密码。当我忽略它时,我得到了这个错误:link=(')TypeError:只能将str(而不是“collections.OrderedDict”)连接到str。请将错误消息添加到问题中,我在这里期待一些非常不同的问题!这清楚地说明了问题:dictreader返回的是字典,而不是您期望的字符串。也许你必须把i['asin']放在这里,而不仅仅是i。这很有效!但是如果列没有名称会发生什么呢?我想它会将csv的第一行作为标题行,不确定,如果需要,您可以自己尝试