Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.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中将数据导出为单独的csv文件_Python_Csv_Web Scraping_Scrapy - Fatal编程技术网

Python 在scrapy中将数据导出为单独的csv文件

Python 在scrapy中将数据导出为单独的csv文件,python,csv,web-scraping,scrapy,Python,Csv,Web Scraping,Scrapy,我制作了一个到这个网站https://www.cartoon3rbi.net/cats.html然后按照第一条规则打开每个节目的链接,通过parse_title方法获取其标题,然后按照第三条规则打开每个剧集的链接并获取其名称。它的工作很好,我只需要知道如何为每个节目的集名制作一个单独的csv文件,并使用parse_title方法中的标题作为csv文件的名称。有什么建议吗 # -*- coding: utf-8 -*- from scrapy.linkextractors import LinkE

我制作了一个到这个网站
https://www.cartoon3rbi.net/cats.html
然后按照第一条规则打开每个节目的链接,通过parse_title方法获取其标题,然后按照第三条规则打开每个剧集的链接并获取其名称。它的工作很好,我只需要知道如何为每个节目的集名制作一个单独的csv文件,并使用parse_title方法中的标题作为csv文件的名称。有什么建议吗

# -*- coding: utf-8 -*-
from scrapy.linkextractors import LinkExtractor
from scrapy.spiders import CrawlSpider, Rule


class FfySpider(CrawlSpider):
    custom_settings = {
        'CONCURRENT_REQUESTS': 1
    }
    name = 'FFy'
    allowed_domains = ['cartoon3rbi.net']
    start_urls = ['https://www.cartoon3rbi.net/cats.html']

    rules = (
        Rule(LinkExtractor(restrict_xpaths='//div[@class="pagination"]/a[last()]'), follow=True),
        Rule(LinkExtractor(restrict_xpaths='//div[@class="cartoon_cat"]'), callback='title_parse', follow=True),
        Rule(LinkExtractor(restrict_xpaths='//div[@class="cartoon_eps_name"]'), callback='parse_item', follow=True),
    )

    def title_parse(self, response):

        title =  response.xpath('//div[@class="sidebar_title"][1]/text()').extract()


    def parse_item(self, response):
        for el in response.xpath('//div[@id="topme"]'):
             yield {
                 'name': el.xpath('//div[@class="block_title"]/text()').extract_first()

             }

假设您将标题存储在列表
titles
中,并将相应的内容存储在列表
contents
中,您可以每次调用以下自定义函数
write_to_csv(title,content)
,将内容写入文件并按名称
.csv
保存

def write_to_csv(标题,内容=“”):
#如果没有提供内容,
#它会创建一个空的csv文件。
打开(标题+'.csv',w')作为f:
f、 写作(内容)
对于内容,zip中的标题(内容,标题):
将内容写入csv(标题、内容)

这是否回答了您的问题?