基于JSON实现数据列表翻页显示

javascript实现获取json数据分页功能 无标题文档 var a={"code":1,"list":[{"category1_id":"1","category1_name":"\u9152\u6c34\u996e\u6599","category1_intro":"\u6e05\u51c9\u53ef\u53e3\u7684\u9152\u6c34\u996e\u6599","category1_images":"http:\/\/w 阅读详情

【51CTO独家特稿】在Web开发过程中,我们常常要实现大量同结构数据在网页上的列项/列表显示,相当多的时间都花在数据显示的处理上。而数据列表显示过程中的翻页功能,则是Web开发中非常常用的功能,有多种实现方法。

由于涉及到显示页面的数据更新问题,因此,多数实现方法往往用到前后台交互功能,利用后台逻辑控制功能来提供支持,完成前台数据显示的翻页功能。这样的处理方式,的确可以解决很多情况下的实际问题,然而代价是增加了前后台交互的次数,每一次翻页都要请求后台逻辑控制程序和后台数据库,也增加了用户等待时间。

本文要介绍的是一种采用纯前台方案,可以实现数据列表显示过程的翻页功能,其特点是以JSON, jQuery和Trimpath来实现前台数据的列表显示与翻页控制,整个过程中不依赖后台,不需要用到任何JSP, PHP, ASP或其他动态网页代码,属于纯前台程序,在使用时,为用户提供了很大的灵活性。

具体实现过程包括如下步骤:

1、将需要列表翻页显示的数据处理为JSON的格式,如代码 1所示。为简易起见,这里仅列出九条数据,实际上可以有更多条数据包含于JSON文件中,通过AJAX方式从后台请求得到存有数据的JSON对象,或者也可以直接采用前台jQuery加载JSON文件的方式得到。(相关文章推荐:理解jQuery解析JSON数据对象原理)

 
  1. 代码 1:  
  2. list.json  
  3.  
  4. {  
  5.     "todo": [  
  6.         {  
  7.             "task": "Go to US",  
  8.             "time": "2010-09-05",  
  9.             "location": "PA"  
  10.         },  
  11.         {  
  12.             "task": "Come back China",  
  13.             "time": "2010-09-15",  
  14.             "location": "Beijing"   
  15.         },  
  16.         {  
  17.             "task": "Go to lab",  
  18.             "time": "2010-09-20",  
  19.             "location": "Wuhan"   
  20.         },  
  21.         {  
  22.             "task": "Go to Shopping",  
  23.             "time": "2010-09-25",  
  24.             "location": "Wuhan"  
  25.         },  
  26.         {  
  27.             "task": "Attend conference",  
  28.             "time": "2010-09-30",  
  29.             "location": "Beijing"  
  30.         },  
  31.         {  
  32.             "task": "View TV",  
  33.             "time": "2010-10-01",  
  34.             "location": "Wuhan"  
  35.         },  
  36.         {  
  37.             "task": "View SAKAI",  
  38.             "time": "2010-10-02",  
  39.           "location": "Wuhan"  
  40.         },  
  41.         {  
  42.             "task": "View Movie",  
  43.             "time": "2010-10-01",  
  44.             "location": "Wuhan"  
  45.         },  
  46.         {  
  47.             "task": "Review papers",  
  48.             "time": "2010-10-03",  
  49.             "location": "Wuhan"  
  50.         }  
  51.     ]  
  52. } 

 

2、编写前台显示代码,采用Trimpath模板编写列表数据的模板化显示部分,如代码 2所示。在这里,采用Trimpath模板来编写表格体(tbody)中的内容,采用名为list_container的div作为目标显示容器。

 
  1. 代码 2:  
  2. list.html  
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
  4. <html> 
  5.  
  6.   <head> 
  7.    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
  8.    <title>List</title> 
  9.     <script type="text/javascript" src="/list/javascript/lib/jquery-1.4.2.js"></script> 
  10.     <script type="text/javascript" src="/list/javascript/lib/template.js"></script> 
  11.     <link rel="stylesheet" type="text/css" href="/list/css/list.css" /> 
  12.   </head> 
  13.  
  14.   <body> 
  15.     <h1>The List Page</h1> 
  16.     <div id="list_input_pagesize_container"> 
  17.       Items per Page:   
  18.       <input id="list_input_pagesize" type="text" /> 
  19.       <input id="list_button_pagesize" type="button" value="OK" /> 
  20.     </div> 
  21.     <textarea id="list_template" style="display: none;"> 
  22.       <table> 
  23.         <thead> 
  24.           <tr> 
  25.             <td id="list_td_task">Task</td> 
  26.             <td id="list_td_time">Time</td> 
  27.             <td id="list_td_location">Location</td> 
  28.           </tr> 
  29.         </thead> 
  30.         <tbody> 
  31.         {for item in todo}  
  32.           <tr> 
  33.             <td>${item.task}</td> 
  34.             <td>${item.time}</td> 
  35.             <td>${item.location}</td> 
  36.           </tr> 
  37.         {/for}  
  38.           <tr> 
  39.             <td colspan="3" id="list_td_foot"> 
  40.               <a id="list_previous" href="">previous</a> 
  41.               <span id="list_pageno"></span> 
  42.               <a id="list_next" href="">next</a> 
  43.             </td> 
  44.           </tr> 
  45.         </tbody> 
  46.       </table> 
  47.    </textarea> 
  48.     <div id="list_container" style="display: none;"></div> 
  49.   </body> 
  50.  
  51. </html> 
  52. <script type="text/javascript" src="/list/javascript/list.js"></script> 

3、采用CSS样式,对显示页面予以修饰,如代码 3所示。

 
  1. 代码 3:  
  2. list.css  
  3. form {margin: 10px 0;}  
  4. table {border-width: 1px; border-style: solid; width: 600px;}  
  5. td {border-width: 1px; border-style: solid; padding: 3px 5px;}  
  6. thead {font-weight: bold; background-color: #F0F0F0;}  
  7.  
  8. #list_input_pagesize_container {margin: 10px 0;}  
  9. #list_input_pagesize {width: 50px;}  
  10. #list_next {float: right;}  
  11. #list_previous {float: left;}  
  12. #list_td_foot {text-align: center;}  
  13. #list_td_task {width: 50%}  
  14. #list_td_time {width: 20%}  
  15. #list_td_location {width: 30%} 

 

4、采用jQuery来控制前台翻页显示(如代码 4所示),这是本方法的关键。需要用到jQuery的JSON处理功能和Trimpath模板加载功能,该方法的主要思路是:将所需显示的包含全部目标数据的JSON对象拆分成多个JSON对象,集中存入一个数组,数组中每个JSON对象对应包含一个页面需要显示的内容,然后根据用户对页码的选择,将与页码对应的那个JSON对象送到Trimpath模板加载,在页面上显示出来。

当用户在页面上点击“前一页”、“后一页”链接进行翻页控制的时候,就更换要加载的JSON数据对象,这样就可以在不刷新页面的情况下实现快速的翻页响应,由于是纯前台控制,不需请求后台,唯一的时间消耗只是重新加载一遍前台模板,因此速度很快。

该程序中采用了三个对象,分别是:

1)json: 类型为JSON对象,功能是用来存储初始获得的JSON对象,其中包含所有需要显示的数据;

2)data: 类型是数组,功能是用来存储经过了拆分处理的每一页需要显示的JSON对象的集合,如前所述;

3)info: 类型是JSON对象,功能是用来存储翻页显示过程中的控制信息(如:currentPageNo, pageSize等)。

另外,该程序还提供了页面尺寸修改的功能,可以供用户修改每一页显示的数据项数。

 
  1. 代码 4:  
  2. list.js  
  3. var pageShow = function() {  
  4.   var json = {}; // The original json object  
  5.   var data = []; // The array of all page list, includes each page items  
  6.   var info = {}; // The json object to save page information  
  7.  
  8.   var getPageSize = function() {return info.pageSize;};  
  9.   var setPageSize = function(pageSize) {info.pageSize = pageSize;};  
  10.   var getItemNumber = function() {return info.itemNumber;};  
  11.   var setItemNumber = function(itemNumber) {info.itemNumber = itemNumber;};  
  12.   var getPageNumber = function() {return info.pageNumber;};  
  13.   var setPageNumber = function(pageNumber) {info.pageNumber = pageNumber;};  
  14.   var getCurrentPageNo = function() {return info.currentPageNo;};  
  15.   var setCurrentPageNo = function(currentPageNo) {info.currentPageNo = currentPageNo;};  
  16.  
  17.  var loadTemplate = function(json) {  
  18.     $("#list_container").hide();  
  19.     $("#list_container").html(TrimPath.processDOMTemplate("list_template", json));  
  20.     $("#list_container").show();  
  21.   };  
  22.  
  23.   var showPageNo = function() {  
  24.     $("#list_pageno").text(getCurrentPageNo() + "/" + getPageNumber());  
  25.   };  
  26.  
  27.   var showPreviousPage = function() {  
  28.     var currentPageNo = getCurrentPageNo();  
  29.     var pageNumber = getPageNumber();  
  30.     if (currentPageNo != 1) {  
  31.       currentPageNo--;  
  32.       setCurrentPageNo(currentPageNo);  
  33.       loadTemplate(data[currentPageNo - 1]);  
  34.       showPageNo();  
  35.     }  
  36.   };  
  37.  
  38.   var showNextPage = function() {  
  39.     var currentPageNo = getCurrentPageNo();  
  40.     var pageNumber = getPageNumber();  
  41.     if (currentPageNo != pageNumber) {  
  42.       currentPageNo++;  
  43.       setCurrentPageNo(currentPageNo);  
  44.       loadTemplate(data[currentPageNo - 1]);  
  45.       showPageNo();  
  46.     }  
  47.   };  
  48.  
  49.   var showData = function() {  
  50.     var pageSize = getPageSize();  
  51.     setPageSize(pageSize);  
  52.  
  53.     var itemNumber = json.todo.length;  
  54.     setItemNumber(itemNumber);  
  55.  
  56.     var pageNumber = 0;  
  57.     if (itemNumber % pageSize == 0) {  
  58.       var pageNumber = itemNumber / pageSize;  
  59.     }  
  60.     else {  
  61.       pageNumber = Math.floor(itemNumber / pageSize) + 1;  
  62.     }  
  63.     setPageNumber(pageNumber);  
  64.  
  65.     var currentPageNo = 1;  
  66.     setCurrentPageNo(currentPageNo);  
  67.  
  68.     // Validate if there is only one page  
  69.     if (pageNumber == 1) {  
  70.       loadTemplate(json);  
  71.       showPageNo();  
  72.     }  
  73.     else {  
  74.       for (var i = 0, j=0; i < itemNumber; i++) {  
  75.         if (!data[j]) {  
  76.           data[j] = $.parseJSON('{"todo": []}');  
  77.         }  
  78.         data[j].todo[i] = json.todo[i];  
  79.         if (i % getPageSize() == getPageSize() - 1) {  
  80.           j++;  
  81.         }  
  82.       }  
  83.  
  84.       loadTemplate(data[getCurrentPageNo() - 1]);  
  85.  
  86.  showPageNo();  
  87.     }  
  88.   };  
  89.  
  90.   var getData = function(path) {  
  91.     $.getJSON(path, function(data) {  
  92.       json = data;  
  93.       showData();  
  94.     });  
  95.   };  
  96.  
  97.   var initPageShow = function() {  
  98.     setPageSize(5);  
  99.     $("#list_input_pagesize").val(getPageSize());  
  100.     var path = "/list/data/list.json";  
  101.     getData(path);  
  102.  
  103.     $("#list_button_pagesize").bind("click", function() {  
  104.       var newPageSize = parseInt($("#list_input_pagesize").val());  
  105.       setPageSize(newPageSize);  
  106.       data = [];  
  107.       showData();  
  108.       $("#list_input_pagesize").focus();  
  109.       return false;  
  110.     });  
  111.     $("#list_previous").live("click", function() {  
  112.       showPreviousPage();  
  113.       return false;  
  114.     });  
  115.     $("#list_next").live("click", function(e) {  
  116.       showNextPage();  
  117.       return false;  
  118.     });  
  119.     $("#list_input_pagesize").focus();  
  120.   };  
  121.  
  122.   initPageShow();  
  123. }  
  124.  
  125. var init = function() {  
  126.   pageShow();  
  127. }  
  128.  
  129. init(); 

 

5、程序中所有文件的存储结构如图1所示。

图1 
图1

6、程序运行结果如图2所示。

图2 
图2

综上所述,本文所介绍的翻页显示控制方法避免了前后台交互的问题,使前台程序可以独立运转,独立控制翻页,而无需依赖后台支持,使用过程较为灵活,用户响应时间很短,无需刷新页面和请求后台数据,具有很高的效率。在使用过程中,可以将其中的翻页函数以jQuery函数调用方式予以应用。

微博数据采集全流程解析:从个人主页到评论翻页的Python实现 本文详细解析了使用Python进行微博数据采集的全流程,重点介绍了从个人主页信息抓取到微博列表及评论翻页的核心技术。通过接口分析、Cookie获取和自动化翻页逻辑的实现,帮助读者高效、稳定地获取微博公开数据,适用于社交媒体分析与研究。 阅读详情

相关推荐

94. 基于 JSONModel 数据模型的 SAP UI5 列表控件分页显示数据的完整解决方案

本步骤提供基于 JSONModel 数据模型的 SAP UI5 列表控件分页显示数据的完整解决方案。 所谓 JSONModel,是 SAP UI5 提供的一种客户端数据模型,即该模型对应的全部业务数据,在客户端即浏览器环境里可用。当对这些业务数据进行搜索,过滤,排序,分组等操作时,无需向服务器端发起请求,而是直接在客户端就可完成。 按照本步骤介绍的 SAP UI5 列表控件分页显示数据的解决方案,最后实现的应用,效果如下图 gif 所示,用户可以通过点击列表工具栏 <- 和 -> 这两个按钮,实

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1829

使用js来实现分页功能

使用js实现分页功能

CQXXTXX的博客 3676

基于AutoDL复现A-LOAM

Ceres solver 是谷歌开发的一款用于非线性优化的库,在谷歌的开源激光雷达slam项目cartographer中被大量使用。在autodl上面租服务器,地区我租的重庆A区的,GPU我选择的是RTX4090,基础镜像选择的是Miniconda / conda3 / 3.8(ubuntu20.04)/11.6。在AutoDL中我使用的方式是先将该数据集先下载到自己的电脑上,然后再上传到虚拟机中。用MobaXterm解决该问题!搜到的一个解决方式:该问题属于ceres版本问题,将A-LOAM下的。

m0_61281610的博客 1942

实现json的分页功能

// json分页 function pagination(page,number,Json_data){//获取分页数据 page为页number为要获取的数量 Json_data为数据总数 let counts=Json_data.length//获取数据总数 let start=(page-1)*number//获取开始值 let end=(page)*number//获取结束值、 let data=[] if(start>counts){//如果开始值大于总值就会返回空数组 retur

fxc6666的博客 2567

五段式S型算法笔记

又因为有 v-v0= 0.5jt通式: 所以有 vm-v0= 0.5jtm 所以有4vm-4v0= 2jtm。算法1: v=2vm-v0-0.5*jt+2jt*tm-2jtm*tm。加加速度j 自己设置 已知,vmax自己设置已知;所以有4vm-4v0= 2jtm带入算法1。

qq_36658033的博客 680

编译原理考试大题分析【太原理工大学】

看完本篇大题拿 85% 的分应该没问题,TYUT 太原理工大学编译原理期末考试。

m0_52861684的博客 1万+

Ajax:json的使用、动态显示学生列表案例

AjaxRequest5Servlet连接数据库,并拼接成json字符串,这种方式特别麻烦,需要拼接json字符串。测试fastjson的使用,创建Model引入架包+AddasLibrary。AjaxRequest5Servlet使用fastjson来转换json字符串。连接数据库,并拼接成json字符串,这种方式特别麻烦,需要拼接json字符串。有一种工具可以把java对象转换为json字符串,就不用再拼接json字符串了。(2)WEB前端如何将json格式字符串转换为json对象。......

dengfengling999的博客 1286

MicroPython 开发ESP32应用教程 之 WIFI配网 Web页面配网 softAP 配网 web页面控制WS2812灯珠

MicroPython 开发ESP32应用教程 之 WIFI配网 Web页面配网 softAP 配网 web页面控制WS2812灯珠

weald2000的专栏 2080

json一次取所有数据,然后在前后进行分页显示

  var mJson = null;  var pageIndex = 1;//当前页号  var pageCount = 0;//总页号  var pageSize  = 20;//每页显示数    //查询后返回值处理  function update_page(result) {    mJson = result;   var mSumRec   = mJson.length;    p

w375179337的专栏 1316

结合 Conda 手动安装 RepeatMasker

RepeatMasker 是一个广泛使用的生物信息学工具,用于识别和屏蔽(mask)基因组序列中的 重复序列(repeats) 。在使用过程中需要调用重复序列数据库(Repbase 和 Dfam),如果使用Conda安装的话会出现许多问题,因此推荐手动安装。在此记录我手动安装RepeatMasker的流程,希望对各位同学有所帮助。

m0_65437087的博客 2535

【UML】第12篇 序列图(1/2)——基本概念和构成

序列图(Sequence Diagram)是一种用于显示对象之间交互的图形化表示。它描述了在特定场景下,对象之间按照时间顺序进行的消息传递和协作过程。在序列图中,对象被表示为带有垂直虚线的矩形,虚线表示对象的生命周期。对象之间的交互通过箭头表示的消息来表示,箭头从一个对象的生命线指向另一个对象的生命线,表示消息的发送和接收。

AI人人懂 3045

nlp标注系统前端功能实现

nlp标注系统前端功能实现 简介 由于目前是在AI部门任职前端,需要给部门的标注人员做一个标注系统。做之前感觉挺简单,真正编码的时候发现有些细节的地方还挺复杂的。 简单做一下需求分析,列举一下主要功能点: 导入原始数据(json),例如: [ { "text": "【最终指导】20首开PPN001,目前边际3.99, 3.9以内已有超一半的量,预期3.8,请大家于17点前反馈我最终标位。", "labels": [] }, {

jacoby_fire的博客 1924

《QGIS快速入门与应用基础》161:面要素顶点编辑与形状调整

本文系统讲解了QGIS中面要素顶点编辑与形状调整的核心操作。首先明确了顶点编辑的适用场景与核心概念,强调需满足图层类型、编辑模式、要素选择等六大前提。详细介绍了编辑顶点工具(F2键)的激活路径及配套辅助工具,通过耕地地块修正案例,分步骤演示顶点移动、添加(双击/工具栏)、删除(Delete键)三大基础操作。同时提供捕捉工具开启、画布缩放等实用技巧,帮助用户高效完成面要素的精细化调整,解决实际工作中的形状偏差问题。全文图文结合,步骤清晰,适合GIS新手快速掌握面要素编辑的核心技能。

LuckyHanMo的博客 480

【Unity】实现翻页功能

翻页功能

顾先生的博客 1795

雷赛控制卡的扩展IO连接

因设备的上IO点较多,所以使用了多个雷赛32点位的IO扩展卡。上位机程序在控制输出IO时发现主模块IO和第一个扩展IO的输出可以控制。但第二个IO扩展卡和第三个IO扩展卡的输出控制不了。经排查出发现轴卡在初始化时只连接了第一个扩展IO卡。增加下面的代码连接上扩展IO就可以了。雷赛控制卡的扩展IO点无法控制问题处理。

StevenChen的博客 3165

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

HarmonyOS 5鸿蒙场景技术共建能力:实现阅读器翻页效果

大家好,我是完美句号!欢迎来到 HarmonyOS 5 开发实战系列。本系列致力于为开发者提供实用的技术方案和即拿即用的代码示例,帮助大家快速掌握 HarmonyOS Next 应用开发中的核心功能。在HarmonyOS 5鸿蒙系统中,基于显式动画、List组件、drawing接口实现了阅读器上下翻页、左右覆盖翻页、仿真翻页等效果。

wanmeijuhao的博客 1万+

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

YUI的DataTable翻页和排序实现

这两天用了一下YUI的DataTable,翻页和排序都在后台实现,数据以JSON格式传输,现在总结一下。 简单地讲,主要有以下几点: 1)在DataTable的config中指定dynamicData=true,DataTable的翻页、排序就会自动通过DataSource获得。 2)DataSource默认发送的request参数格式如下: sort={SortColumnKey

Eason_lanxum的专栏 1055

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

AutoJs数据展示及翻页

最终实现的效果图: 数据展示为每页10条数据,翻页按钮跟随数据的下方 在数据展示中:使用了 list(列表)界面布局,包裹card (卡片)布局 <list id="list"> <card w="*" h="60" margin="10 2 2 10" cardCornerRadius="2dp" cardElevation="1dp" foreground="?selectableItemBackground"> <horizontal gravi

weixin_43536815的博客 1682

Ajax分页:无刷新体验,颠覆你的翻页认知

话说那天我正坐在电脑前,手里捧着一杯82年的速溶咖啡,突然接到产品经理的电话:“老张,咱们那个列表页能不能做成无刷新分页?每次翻页都刷新页面,用户体验太差了!”我一听,这不就是Ajax分页的需求吗?于是我拍了拍胸脯:“没问题,包在我身上!”于是我开始了一段与Ajax无刷新分页的“爱情故事”。首先

OUPrUEYI的博客 783

FlipIt 翻页时钟屏保:轻量复古的 Windows 屏保

电脑锁屏后,屏幕往往只剩一片纯黑,连个念想都没有。最近我在用开源项目 FlipIt,一个基于 .NET Framework 4.8 的翻页时钟屏保:机器一闲置,屏幕就变成一块会翻牌的机械时钟,顺带还能瞄一眼其他城市现在几点。灵感来自老牌翻页时钟 Fliqlo,但完全不依赖 Flash。 [![FlipIt 翻页时钟屏保显示效果](https://raw.gitcode.com/gh_mirror

gitblog_00789的博客 182

【模板】翻页url不改变,发送get请求,进入geturl得到json数据的网站抓取模板

适用:网站翻页url地址不变 F12打开网路XHR发现是get请求: 复制Request URL得到如下json数据 所以可以编写如下代码: import requests import json ls = [] url = 'http://www.cistc.gov.cn/handlers/cistcMenuInfoList.ashx?columnid=221&isall=1&keyword=&year=&pagenum=1' text = requests.ge

GangsterChen & Codes 704

Android实现答题器功能通过手势实现翻页效果(附带源码)

Android实现答题器功能通过手势实现翻页效果(附带源码)

欢迎来到我的博客!这里是一个专注于计算机技术的分享平台,涵盖编程开发、算法研究、系统架构、软件工程等多个领域。无论你是初学者还是资深开发者,都能在这里找到有价值的内容。 1227

jquery json getjson 翻页

 由于本人比较懒,这段是从网上找的一个代码,直接改的,对于要实现网页全部静态化的朋友还是大有启发的。这也是我经过两天才摸索明白的,希望大家多多提意见,还有祝和我一样喜欢jquery脚本框架的朋友都有一份好工作。index.html:%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%> http://www.w3.org/TR/xhtml1/DTD/xhtml1-

jiangquan1982的专栏 512

网站无翻页,网页无翻页怎么采集

采集的网站无翻页解决方法,网页无翻页怎么采集,可以使用简数快速采集。

keydatas的博客 413

在万维网爬虫中进行翻页爬取的三种常用方案

首先先定义scrapy中的请求方法,然后创建列表对象,再遍历列表对象,用scrapy中的Request方法(形参url为实参url)对遍历后的临时变量发起请求,yield返回Response对象,所以start_requests方法的返回值是Response,主要代码如下。,在这个URL中,limit参数表示每个页面展示的书籍数量,而offset表示此资源目录里是从第几本书开始展示,所以第二页的URL是offset=10,而不是offset=2,那么也就不能简单粗暴的用上一个案例的方法进行请求了。

qq_55303268的博客 4800

scrapy爬虫(处理详情页、翻页、空字符串、保存json文件)

目录 一、爬虫文件jump.py import scrapy from Detail.items import DetailItem class JumpSpider(scrapy.Spider): name = 'jump' allowed_domains = ['meishij.net'] start_urls = ['https://www.meishij.net/...

weixin_44947339的博客 1321
上一篇: 解决IE6、IE7、IE8、Firefox兼容的几种方案
下一篇: 提高程序运行速度 让Ext JS华而又实
escode
博客等级 码龄22年 33粉丝 49原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值