From ac7ecb7810bbfcf7b223ebf868fcbb94714a0dc8 Mon Sep 17 00:00:00 2001 From: elpolilla Date: Fri, 19 Dec 2008 10:16:58 +0000 Subject: [PATCH] Added adapt_response method to XMLFeedSpiders --HG-- extra : convert_revision : svn%3Ab85faa78-f9eb-468e-a121-7cced6da292c%40537 --- scrapy/trunk/scrapy/contrib/spiders/feed.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/scrapy/trunk/scrapy/contrib/spiders/feed.py b/scrapy/trunk/scrapy/contrib/spiders/feed.py index 37f9dcf6d..5e2a55c33 100644 --- a/scrapy/trunk/scrapy/contrib/spiders/feed.py +++ b/scrapy/trunk/scrapy/contrib/spiders/feed.py @@ -26,6 +26,11 @@ class XMLFeedSpider(BaseSpider): of results (Items or Requests).""" return results + def adapt_response(self, response): + """You can override this function in order to make any changes you want + to into the feed before parsing it. This function must return a response.""" + return response + def parse_nodes(self, response, nodes): for xSel in nodes: ret = self.parse_item(response, xSel) @@ -40,6 +45,7 @@ class XMLFeedSpider(BaseSpider): if not hasattr(self, 'parse_item'): raise NotConfigured('You must define parse_item method in order to scrape this XML feed') + response = self.adapt_response(response) if self.iternodes: nodes = xmliter(response, self.itertag) else: @@ -64,8 +70,7 @@ class CSVFeedSpider(BaseSpider): return results def adapt_response(self, response): - """You can override this function in order to make any changes you want - to into the feed before parsing it. This function must return a response.""" + """This method has the same purpose as the one in XMLFeedSpider""" return response def parse_rows(self, response):