Ниже код scrapy (взято из одного сообщения в блоге) работает нормально, чтобы отменить данные только на первой странице. Я добавил «Правило» для извлечения данных со второй страницы, но все же он берет данные только с первой страницы.Scrapy - Скремблирование данных только с первой страницы, а не с страницы «Далее» в разбивке на страницы
Любые советы?
Вот код:
# -*- coding: utf-8 -*-
import scrapy
from scrapy.spiders import CrawlSpider, Rule
from scrapy.linkextractors import LinkExtractor
from ..items import TfawItem
class MasseffectSpider(CrawlSpider):
name = "massEffect"
allowed_domains = ["tfaw.com"]
start_urls = [
'http://www.tfaw.com/Companies/Dark-Horse/Series/?series_name=Adventure-Time',
]
rules = (
Rule(LinkExtractor(allow=(),
restrict_xpaths=('//div[@class="small-corners-light"][1]/table/tbody/tr[1]/td[2]/a[@class="regularlink"]',)),
callback='parse', follow=True),
)
def parse(self, response):
for href in response.xpath('//a[@class="regularlinksmallbold product-profile-link"]/@href'):
url = response.urljoin(href.extract())
yield scrapy.Request(url, callback=self.parse_detail_page)
pass
def parse_detail_page(self, response):
comic = TfawItem()
comic['title'] = response.xpath('//td/div[1]/b/span[@class="blackheader"]/text()').extract()
comic['price'] = response.xpath('//span[@class="redheader"]/text()').extract()
comic['upc'] = response.xpath('//td[@class="xh-highlight"]/text()').extract()
comic['url'] = response.url
yield comic
Спасибо! работал отлично. – Overflow