命令行中可以看到 'item_scraped_count': 12,一共爬取到12条记录,也就是只爬取了第一页的数据。但是还有第二的数据没有爬取,那要怎么处理才能爬取到所有分页的数据呢?

分页

分页

import scrapy
from ITFunSpider.items import ItfunspiderItem


class CourseSpider(scrapy.Spider):
    # ...

    def parse(self, response):
        for course in response.xpath('//div[@id="courseList"]/div/a'):
              item = ItfunspiderItem()
              # ...       

        # 解析下一页的链接
        next_page = response.xpath('//div[@class="pagination"]/ul/li[@class="next"]/a/@href').extract_first()
        if next_page:
            # 再次发送请求获取下一页数据
            yield scrapy.Request("https://itfun.tv" + next_page, callback=self.parse)

显式使用 scrapy.Request 发送请求,并指定使用 self.parse 来解析服务响应数据。可以看到 'item_scraped_count': 16