您现在的位置是:首页 > 编程 > 

14爬虫:scrapy实现翻页爬取

2025-07-17 14:45:32
一、翻页爬取的基本逻辑 普通的分页: 这种网页的表现为:“上一页 1,2,,4.......下一页,尾页”。 情况1:观察页面源代码,发现url直接在源代码中体现,对应的解决方案是:(1)访问第一页,(2)提取下一页url,()提取下一页url,一直重复该流程到最后一页。 情况2:观察页面源代码,发现url不能在源代码中体现,对应的解决方案是:直接观察页面总数,观察每一页url的变化规

一、翻页爬取的基本逻辑

普通的分页:

这种网页的表现为:“上一页 1,2,,4.......下一页,尾页”

情况1:观察页面源代码,发现url直接在源代码中体现,对应的解决方案是:(1)访问第一页,(2)提取下一页url,()提取下一页url,一直重复该流程到最后一页。

情况2:观察页面源代码,发现url不能在源代码中体现,对应的解决方案是:直接观察页面总数,观察每一页url的变化规律,通过程序模拟出每一页的url。

不正常的分页

例如点击加载更多,或者鼠标向下滑动才能加载更多信息的分页逻辑属于不正常的分页。

情况1:加载更多,点击之后才可以加载下一页的内容。对应的解决方案是:通过抓包到url的变化规律,变化规律可能在每一页对应的url上体现,也可能在参数上体现

情况2:滚动刷新,这种情况的解决方案也是抓包,规律。有一种特殊的情况,在前一页的请求结果中存在一个参数供下一页使用,这种情况多发生在微博中。

二、scrapy抓取17K相关书籍名称

先说明一下,17K网站现在加入了debug模式,导致翻页失败。

怎么解决debug模式还需要后续继续学习。但是我们可以深度理解一下在scrapy中翻页的思想。

具体的思路如下:

第一页网页源代码
第二页网页源代码
第三页网页源代码
第4页网页源代码

通过对网页源代码的分析,我们在某一页上可以得到相近几页的url。比如说:

第一页网页源代码——》【2,,4,5,2】页的url地址;

第二页网页源代码——》【,4,5,6,】页的url地址;

第三页网页源代码——》【2,1,2,4,5,6,7,4】页的url地址;

以此类推我们能够得到所有页面的url地址。

这里就会存在一个问题,解析第n页的网页源代码,与第n-1页、第n+1页得到的url地址重复。会不会造成重复url的爬取。

对该问题我们首先给出答案,不会造成重复爬取的。大家还记得scrapy中有一个调度器schedule模块,在schedule中存在一个过滤器,过滤器会剔除已经爬取过的url,这也是scrapy框架的强大之处。

整个程序的工作流程如下图所示:

下面我们就给出上述翻页思想的代码实现,具体如下:

import scrapy
from novelSpider.items import ovelspiderItem
'''
settings.py中进行的设置
USER_AGET = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/57.6 (KHTML, like Gecko) Chrome/11.0.0.0 Safari/57.6"
ROBOTSTXT_OBEY = False
LOG_LEVEL = "WARIG"
DOWLOAD_DELAY = 
ITEM_PIPELIES = {
   "novelSpider.": 00,
}

'''
class ovelnameSpider(scrapy.Spider):
    name = "novelame"
    allowed_domains = ["17k"]
    start_urls = ["https://www.17k/all"] # 修改起始url为我们需要的地址

    def parse(self, respe, **kwargs):
        #

#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格

本文地址:http://www.dnpztj.cn/biancheng/1115191.html

相关标签:无
上传时间: 2025-07-17 08:29:48
留言与评论(共有 14 条评论)
本站网友 鸡血藤功效
23分钟前 发表
这种情况的解决方案也是抓包
本站网友 西部国际博览会
9分钟前 发表
滚动刷新
本站网友 海口市租房网
25分钟前 发表
滚动刷新
本站网友 温州动车赔偿
28分钟前 发表
】页的url地址; 第三页网页源代码——》【2
本站网友 福田汽车站官网
15分钟前 发表
这种情况的解决方案也是抓包
本站网友 opportunities
9分钟前 发表
解析第n页的网页源代码
本站网友 曲库
6分钟前 发表
第n+1页得到的url地址重复
本站网友 十二经络
15分钟前 发表
4
本站网友 陈晓峰
27分钟前 发表
对应的解决方案是:通过抓包到url的变化规律
本站网友 珍香胶囊
29分钟前 发表
对该问题我们首先给出答案
本站网友 全球华人富豪榜
30分钟前 发表
不会造成重复爬取的
本站网友 味精发明
0秒前 发表
本站网友 潍坊落户
7分钟前 发表
} ''' class ovelnameSpider(scrapy.Spider)