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(标题、内容)
这是否回答了您的问题?