Экспорт данных в CSV после очистки данных с помощью Scrapy - PullRequest
0 голосов
/ 23 октября 2019

Сделал этот скребок, который корректно очищает данные, но проблема заключается в экспорте его в csv. Значение по умолчанию - o filname.csv не вставляет данные в правильном порядке. Нужно некоторое руководство, чтобы сделать это. Элемент ['name'] должен находиться в первом столбце, а элемент ['link'] - во втором. Это код.

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


class YuSpider(CrawlSpider):
    name = 'yu'
    allowed_domains = ['farfeshplus.com',
                       'wintv.live']
    start_urls = ['https://www.farfeshplus.com/Video.asp?ZoneID=297']

    rules = (
        Rule(LinkExtractor(restrict_xpaths='//td[@class="text6"]'), callback='parse_item', follow=True),

    )

    def parse_item(self, response):
        items = WebscItem()
        for url in response.xpath('//html'):
            items['name'] = url.xpath('//h1/div/text()').extract()

            yield items

            frames = url.xpath('//iframe[@width="750"]/@src').extract_first()

            yield scrapy.Request(url=frames, callback=self.parse_frame)

    def parse_frame(self, response):
        items = WebscItem()
        URL = response.xpath('//body/script').extract_first()


        mp4 = re.compile(r"(?<=mp4:\s\[\')(.*)\'\]")
        link = mp4.findall(URL)[0]

        items['link'] = link
        yield items

Ответы [ 2 ]

2 голосов
/ 24 октября 2019

Вам необходимо использовать FEED_EXPORT_FIELDS в вашем settings.py

0 голосов
/ 23 октября 2019

Если вы хотите экспортировать данные в csv, вы можете использовать Pandas.

Сначала вы должны сделать из Pandas-Dataframe свой файл, а затем экспортировать этот кадр данных в csv:

из https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_csv.html

df = pd.DataFrame({'name': ['Raphael', 'Donatello'],
                   'mask': ['red', 'purple'],
                   'weapon': ['sai', 'bo staff']})
df.to_csv()

Я не уверен, что это то, что вы ищете

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...