簡體   English   中英

新手Q關於Scrapy pipeline.py

[英]Newbie Q about Scrapy pipeline.py

我正在研究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,我將不勝感激。

謝謝。

我認為它們可以在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']

根據項目的具體情況進行調整。

使用內置CSV Feed導出 (在v0.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()

或者在stdout上輸出結果,然后將stdout重定向到文件./my_script.py >> res.txt

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM