Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.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';在我的amazon spider中添加Itemloader,以便从输出中删除所有新行字符或额外的空格_Python_Scrapy - Fatal编程技术网

Python 如何使用scrapy';在我的amazon spider中添加Itemloader,以便从输出中删除所有新行字符或额外的空格

Python 如何使用scrapy';在我的amazon spider中添加Itemloader,以便从输出中删除所有新行字符或额外的空格,python,scrapy,Python,Scrapy,我正在尝试使用scrapy刮取amazon,除了author字段之外,其他一切都很好 我得到的结果是 {'author': ['Somasundaram Chenrayan', 'B. Latha B. லதா', 'Mugil முகில்', 'ஜே. சி. குமரப்பா', ' and ', 'மீ. விநாயகம்', '\n'

我正在尝试使用scrapy刮取amazon,除了author字段之外,其他一切都很好 我得到的结果是

{'author': ['Somasundaram Chenrayan',
            'B. Latha B. லதா',
            'Mugil முகில்',
            'ஜே. சி. குமரப்பா',
            ' and ',
            'மீ. விநாயகம்',
            '\n'
            '    \n'
            '        \n'
            '        \n'
            '            Napoleon Hill\n'
            '        \n'
            '    \n',
            '\n'
            '    \n'
            '        \n'
            '        \n'
            '            Joseph Murphy\n'
            '        \n'
            '    \n',
            'டாக்டர் அம்பேத்கர்',
            'MALINI SUNDAR',
            '\n'
            '    \n'
            '        \n'
            '        \n'
            '            வாணி அரவிந்த்\n'
            '        \n'
            '    \n',
            'sankareswari சங்கரேஸ்வரி',
            '\n'
            '    \n'
            '        \n'
            '        \n'
            '            George S Clason\n'
            '        \n'
            '    \n',
            'சசிகுமார்  தங்கவேல் ',
            'ஆர். ஷண்முகசுந்தரம்',]

在检查了stackexchange上的一些答案之后,我在我的items模块中编写了下面提到的代码,这样我就可以从author字段中删除所有多余的空格,但它实际上不起作用

import scrapy
from scrapy.loader.processors import MapCompose
from w3lib.html import remove_tags

def normalize_space(value):
    return " ".join(value.split())

class Product(scrapy.Item):
    author = scrapy.Field(
        input_processor=MapCompose(remove_tags, normalize_space),
    )
    book_name = scrapy.Field()
    price = scrapy.Field()
    image_links = scrapy.Field()
这是我的蜘蛛代码:

import scrapy
from ..items import Product

class AmazonSpider(scrapy.Spider):
    # page_number = 1

    name = "amazon"
    start_urls = [
        "https://www.amazon.in/s?bbn=976389031&rh=n%3A976389031%2Cp_n_publication_date%3A2684819031&dc&fst=as%3Aoff&qid=1588845227&rnid=2684818031&ref=lp_976389031_nr_p_n_publication_date_0"
    ]

    def parse(self, response):

        items = Product()

        book_name = response.css(".a-color-base.a-text-normal").css("::text").extract()
        price = response.css(".a-price span::text").extract()
        author = response.css(".a-color-secondary .a-size-base+ .a-size-base").css("::text").extract()
        image_links = response.css("div img::attr(src)").extract()

        items["book_name"] = book_name
        items["price"] = price
        items["author"] = author
        items["image_links"] = image_links
        yield items
因为我是新来的,我不知道如何解决这个问题。如果你能告诉我这段代码出了什么问题,或者我如何用re解决这个问题,我会非常感激。我也尝试过re,但它只给出了语法错误。

我想你可能是在混音。您没有使用项目加载器,因此定义
input\u processor
是无用的

仔细查看的第二个代码片段,其中使用项目加载器(与项目相反)提取数据并应用定义的输入处理器