Я разделил паука от краулера. Мне необходимо достать некоторые данные с сайта с помощью Python Scrapy, используя разные условия для поучния результатов. Итак, у меня есть функции в одном файле:
#
def parse(self, response):
xpath = '//div[@class="proinfor"]//div[@class="prolist_casinforimg"]/a/@href'
urls = response.xpath(xpath).extract()
for url in urls:
url = url.replace("//", "", 1)
yield scrapy.Request(response.urljoin(url),
callback=self.parse_requem)
yield scrapy.Request(response.urljoin(url),
callback=self.parse_obj)
def parse_requem(self, response):
...
yield scrapy.Request(callback=self.parse_item)
def parse_item(self, response):
parser = BaseParser(response)
return parser.construct_item()
def parse_obj(self, response):
parser = BaseParser(response)
return parser.construct()
И код в классе BaseParser:
#
def parse_price(self):
Price = response.body
return Price
def parse_ex(self):
exists = self.xpath('//text()').extract_first()
return exists
def construct(self):
item = dict()
item['ex'] = self.parse_ex()
return item
def construct_item(self):
item = dict()
item['price'] = self.parse_price()
return item
Как вы видите, я пытаюсь разделить логику получения данных, однако вместо этого я получаю только результат исполнения от одной функции.
Как разделить логику парсинга для паука?