簡體   English   中英

我在我的 scrapy 項目中實現了一個 ItemLoader 來格式化該數據,它不再向 csv 文件添加任何內容

[英]I implemented an ItemLoader in my scrapy project to format that data and it is no longer adding anything to the csv file

我創建了一個scrapy項目來從這個分類廣告網站上抓取一些信息,但是我得到的數據需要格式化。 在做了一些研究之后,我想出了如何實現 ItemLoader 但現在它不會將任何抓取的數據寫入 csv 文件。

這是我的spider.py:

import scrapy
from..items import TestItem
from scrapy.loader import ItemLoader

class TestSpiderSpider(scrapy.Spider):
    name = 'test'
    page_number = 2
    start_urls = ['https://jamaicaclassifiedonline.com/auto/cars/']

    def parse(self, response):

        for car in response.css('.col.l3.s12.m6'):
            items = TestItem()

            product_title = car.css('.jco-card-title::text').extract()
            product_imagelink = car.css('.card-image img::attr(data-src)').getall()
            urls = car.css('.card-image a::attr(href)').getall()

            for url in urls:
                url = response.urljoin(url)
                yield scrapy.Request(url=url, callback=self.parse_details)

            if product_title and product_imagelink:
                items['urls'] = urls

    def parse_details(self, response):
        l= ItemLoader(item=TestItem(), selector=response)
        l.add_css('product_title','#title::text')

        yield l.load_item()

        pass

這是我的 items.py

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

class TestItem(scrapy.Item):
    product_title = scrapy.Field(input_processors= MapCompose(remove_tags),output_processor= TakeFirst())

    pass

這是我的setting.py:

BOT_NAME = 'test'

SPIDER_MODULES = ['test.spiders']
NEWSPIDER_MODULE = 'test.spiders'

ROBOTSTXT_OBEY = True

DOWNLOADER_MIDDLEWARES = {
    'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware': None,
    'scrapy_user_agents.middlewares.RandomUserAgentMiddleware': 400,

}

這是我的pipeline.py:

class TestPipeline:
    def process_item(self, item, spider):
        return item

不需要啟用管道來使用 ItemLoader,請嘗試不使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM