2

我正在学习 Scrapy 教程。为了测试这个过程,我用这些文件创建了一个新项目:

有关脚本的链接,请参阅我在 Scrapy 组中的帖子,我不能在此处发布超过 1 个链接。

蜘蛛运行良好,将标题标签之间的文本刮掉,放到 FirmItem 中

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

但我被困在管道过程中。我想将此 FirmItem 添加到 csv 文件中,以便可以将其添加到数据库中。

我是 python 新手,我正在学习。如果有人给我一个关于如何使 pipelines.py 工作以便将抓取的数据放入 items.csv 的线索,我将不胜感激。

谢谢你。

4

4 回答 4

9

我认为他们在Scrapy 教程中解决了您的具体问题。

它建议,就像其他人在这里使用 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

不要忘记通过将管道添加到 settings.py 中的 ITEM_PIPELINES 设置来启用管道,如下所示:

ITEM_PIPELINES = ['dmoz.pipelines.CsvWriterPipeline']

调整以适合您的项目的具体情况。

于 2009-11-21T06:24:05.243 回答
1

将内置的CSV 提要导出(在 v0.10 中可用)与CsvItemExporter一起使用。

于 2012-08-27T11:26:06.283 回答
0

Python 有一个用于读取/写入 CSV 文件的模块,这比自己编写输出更安全(并且正确地引用/转义......)

import csv
csvfile = csv.writer(open('items.csv', 'w'))
csvfile.writerow([ firmitem.title, firmitem.url ])
csvfile.close()
于 2009-11-20T15:27:55.673 回答
-1

打开文件并写入。

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

于 2009-11-20T15:25:54.267 回答