2016-06-09 58 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