格兰芬多拔草工 2017-10-08 10:46 采纳率: 0%
浏览 3516

在scrapy中如何实现在多个页面上进行爬取

目标是 爬取http://download.kaoyan.com/list-1到http://download.kaoyan.com/list-1500之间的内容,每个页面中的又有翻页的list-1p1到list-1p20。目前只能实现在list1p上面爬取,应该如何修改代码跳转到list-6上面?list-2是404

# -*- coding: utf-8 -*-
import scrapy
from Kaoyan.items import KaoyanItem

class KaoyanbangSpider(scrapy.Spider):
    name = "Kaoyanbang"
    allowed_domains = ['kaoyan.com']
    baseurl = 'http://download.kaoyan.com/list-'
    linkuseurl = 'http://download.kaoyan.com'
    offset = 1
    pset = 1

    start_urls = [baseurl+str(offset)+'p'+str(pset)]

    handle_httpstatus_list = [404, 500]

    def parse(self, response):
        node_list = response.xpath('//table/tr/th/span/a')
        for node in node_list:
            item = KaoyanItem()
            item['name'] = node.xpath('./text()').extract()[0].encode('utf - 8')
            item['link'] = (self.linkuseurl + node.xpath('./@href').extract()[0]).encode('utf-8')
            yield item

        while self.offset < 1500:
            while self.pset < 50:
                self.pset = self.pset + 1
                url = self.baseurl+str(self.offset)+'p'+str(self.pset)
                y = scrapy.Request(url, callback=self.parse)
                yield y
            self.offset = self.offset + 5
  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2022-09-09 18:27
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 以帮助更多的人 ^-^
    评论

报告相同问题?

悬赏问题

  • ¥50 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?