Вопрос

Я изучаю учебное пособие по Scrapy.Чтобы протестировать процесс, я создал новый проект с этими файлами:

Смотрите мой пост в Scrapy group для получения ссылок на скрипты, я не могу разместить здесь более 1 ссылки.

Паук работает хорошо, он очищает текст между тегами title и помещает его в FirmItem

[whitecase.com] INFO: Passed FirmItem(title=[u'White & Case LLP - Lawyers - Rachel B. Wagner ']) 

Но я застрял в процессе разработки.Я хочу добавить этот FirmItem в csv-файл, чтобы я мог добавить его в базу данных.

Я новичок в python и учусь по ходу дела.Я был бы признателен, если бы кто-нибудь дал мне подсказку о том, как заставить pipelines.py работать так, чтобы очищенные данные помещались в items.csv.

Спасибо.

Это было полезно?

Решение

Я думаю, что они отвечают на ваш конкретный вопрос в Скраповый Учебник.

Это предполагает, как и другие здесь, использование модуля CSV.Поместите следующее в свой pipelines.py файл.

import csv

class CsvWriterPipeline(object):

    def __init__(self):
        self.csvwriter = csv.writer(open('items.csv', 'wb'))

    def process_item(self, domain, item):
        self.csvwriter.writerow([item['title'][0], item['link'][0], item['desc'][0]])
        return item

Не забудьте включить конвейер, добавив его в параметр ITEM_PIPELINES в вашем settings.py , например, так:

ITEM_PIPELINES = ['dmoz.pipelines.CsvWriterPipeline']

Корректируйте в соответствии со спецификой вашего проекта.

Другие советы

Используйте встроенный Экспорт ленты CSV (доступно в версии 0.10) вместе с CsvItemExporter.

Python имеет модуль для чтения /записи CSV-файлов, это безопаснее, чем писать выходные данные самостоятельно (и правильно использовать все кавычки / экранирование ...)

import csv
csvfile = csv.writer(open('items.csv', 'w'))
csvfile.writerow([ firmitem.title, firmitem.url ])
csvfile.close()

Откройте файл и запишите в него.

f = open('my.cvs','w')
f.write('h1\th2\th3\n')
f.write(my_class.v1+'\t'+my_class.v2+'\t'+my_class.v3+'\n')
f.close()

Или выведите свои результаты в стандартный вывод, а затем перенаправьте стандартный вывод в файл ./my_script.py >> res.txt

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top