2016-06-09 96 views
0

比如我想抓取三個類似的網址:Scrapy解析管線

https://example.com/book1 
https://example.com/book2 
https://example.com/book3 

我要的是在pipeline.py,我創建3個文件名爲book1的,第二冊和BOOK3,並寫入3書籍的數據正確和分開 在spider.py中,我知道三個書籍的名稱,作爲文件名,但不在pipeline.py 它們具有相同的結構,所以我決定編碼如下:

class Book_Spider(scrapy.Spider): 
    def start_requests(self): 
     for url in urls: 
      yield scrapy.Request(url, self.parse) 
    def parse(self, response): 
     # item handling 
     yield item 

現在,我該怎麼辦?

+0

你怎麼知道「文件名」或「書名」,因爲如果你可以將其設置爲蜘蛛參數,流水線的'process_item'有spider作爲參數,所以你可以像'spider.filename'一樣在'process_item'裏面得到它。 – eLRuLL

回答

0

Smith,如果你想知道pipeline.py中的書名。有兩個選項可以爲book_file_name創建一個項目字段,並根據需要填充它。或者你可以從url字段提取它也是一個項目字段,並可以訪問pipline.py