火车头使用Post方法采集Ajax页面教程

前面有写过一篇瀑布流的采集方法,今天在添加一个POST方法来采集Ajax刷新页面的教程。

之前的文章请看:火车头采集动态加载Ajax数据(无分页瀑布流网站)

如果遇到POST方法来架子Ajax数据,这和我之前写的是两个类型,瀑布流是直接刷新出数据的页面。

采集网站分析

采集任何一个新站前我们都要对他进行一番分析才好下手。

列表页分析

这个网站的列表页,前面并不是通过Ajax加载的。CTRL+U可以直接看到列表内容,通过浏览器也看不到相关请求地址。

火车头使用Post方法采集Ajax页面教程

火车头使用Post方法采集Ajax页面教程

因为习惯原因,我直接看了下尾页列表页。然后顺手CTRL+U看看网站代码结构有没有大的变化。防止后期采集出错。结果就发现无法看到列表内容。浏览器可以看到一个通过post请求的地址。

火车头使用Post方法采集Ajax页面教程

火车头使用Post方法采集Ajax页面教程

这时候就意识到这网站列表页可能后面的应该全是通过Ajax加载的。

通过笨方法,手动访问页面看看Ajax加载大概是哪些。最后找到大概从2200页左右开始Ajax加载。

那我们采集的时候,前面的列表页就可以使用普通方式去采集(速度更快)。

2200页开始到尾页就通过post请求Ajax页面数据。

抓包获取Post数据

这个Ajax地址我在浏览器看不到任何跟页码有关的数据。最后只能使用抓包工具看一下详细的请求内容了。

火车头使用Post方法采集Ajax页面教程

使用抓包工具Fiddler

Fiddler下载地址:OneDrive-Fiddler-Setup_v5.0.20204.45441.zip

安装设置完成后我们打开浏览器。重新访问一下采集页面,Fiddler会抓到很多请求地址。

查看分析Post数据

Ctrl+F 我们搜索那个Ajax地址

火车头使用Post方法采集Ajax页面教程

Fiddler会以黄色将搜索到的结果显示出来,我们点击一下他。

火车头使用Post方法采集Ajax页面教程

在Fiddler右侧会显示这个请求地址的相关详细信息。

火车头使用Post方法采集Ajax页面教程

信息顶部可以看到是post请求方法。往下拉。

可以看到有我们请求的页码相关内容。

火车头使用Post方法采集Ajax页面教程

访问不同页码的页面,经过研究发现规律。

火车头使用Post方法采集Ajax页面教程

currentPageIndex的值和页码相关,值等于页码减一。我们访问6139页时,currentPageIndex值是6138。

这就找到了规律,我们打开火车头采集器。

火车头采集器配置

分页设置

起始网址填入Ajax请求地址

火车头使用Post方法采集Ajax页面教程

点“高级模式”。

火车头使用Post方法采集Ajax页面教程

点“分页设置”,http请求方式“post”。

火车头使用Post方法采集Ajax页面教程

把我们Fiddler抓包获取的内容填进去。

火车头使用Post方法采集Ajax页面教程

将currentPageIndex值的内容替换成火车头采集器的“分页”标签。

火车头使用Post方法采集Ajax页面教程

下面填入页码。

页面地址是从2200到6140,上面我们分析得出post请求内容的currentPageIndex值是实际页码减一。所以这里面我们填2199到6139.

火车头使用Post方法采集Ajax页面教程

网址获取选项设置

为了筛选出我们需要的内容,我们设置一下网址获取选项。

打开浏览器F12开发工具,预览一下Ajax获取的内容。

火车头使用Post方法采集Ajax页面教程

可以看到链接的形式是

 
  1. <a href=\"/chengrenzikao/20200611152022.html\">自考成考报名条件有哪些?</a>

完整的链接地址是

 
  1. https://域名/chengrenzikao/20200611152022.html

那我们就可以使用下面的规则提取地址。

火车头使用Post方法采集Ajax页面教程

我们测试一下网址采集。

测试网址采集

点击测试可能提示“post请求必须选择网页编码”我们在火车头其他设置中将编码选为“UTF8”即可。

火车头使用Post方法采集Ajax页面教程

可以看到已经正确获取到了链接。不放心可以复制链接实际访问一下看看是否正确。

火车头使用Post方法采集Ajax页面教程

注意事项

采集过程注意运行线程和请求间隔时间。教程在测试时因为开的线程较多,频率过高导致对方网站开启了防CC设置。拉黑了我一个服务器IP,此教程写完用了两台服务器。

我们实际采集可以只开1个线程,并设置合适的间隔时间,比如1000ms到1500ms左右。

本文由来自2号站长网,转载请注明出处:https://www.zz2zz.com/331414.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/94197.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/94197.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【学习记录】structuredClone,URLSearchParams,groupBy

structuredClone() 可以进行深拷贝&#xff0c;这里有详细讲解&#xff1a;Window&#xff1a;structuredClone() 方法 当需要处理包含嵌套对象或数组的复杂数据结构时&#xff0c;建议使用 structuredClone() 来保护原始数据。 举例&#xff1a;别再用 … 扩展运算符了&#x…

30条AI编程指令

大家好&#xff0c;小机又来分享AI了。 前言&#xff1a; 凌晨三点&#xff0c;你还在像素级对齐那个永远对不齐的按钮&#xff1b;刚写完的API文档&#xff0c;产品经理一句"需求变了" 让你瞬间崩溃&#xff1b;更扎心的是&#xff0c;实习生用AI十分钟搞定了你要…

AI+虚拟仿真:以科技之光照亮希望的田野

在乡村振兴与农业现代化的全新征程中&#xff0c;农林专业人才肩负着科技赋能土地、守护绿色发展的重任。然而&#xff0c;现有的教育模式却越发不适应农业人才的培养需求。“AI虚拟仿真”正在为农业现代化人才建设提供创新的技术引擎。市场风口与政策红据统计&#xff0c;2024…

04_函数

第4课&#xff1a;函数 课程目标 掌握函数的定义和调用方法学习参数传递和返回值的使用理解函数的作用域和命名空间 1. 函数的基本概念 函数是一段可重复使用的代码块&#xff0c;用于执行特定的任务。 2. 函数的定义和调用 # 定义函数 def greet():print("你好&#xff0…

STM32学习笔记19-FLASH

FLASH简介STM32F1系列的FLASH包含程序存储器、系统存储器和选项字节三个部分&#xff0c;通过闪存存储器接口&#xff08;外设&#xff09;可以对程序存储器和选项字节进行擦除和编程&#xff0c;读取指定寄存器直接使用指针读即可读写FLASH的用途&#xff1a;利用程序存储器的…

电蚊拍的原理及电压电容参数深度解析:从高频振荡到倍压整流的完整技术剖析

1. 引言在炎炎夏日&#xff0c;蚊虫成为人们生活中的一大困扰。电蚊拍作为一种高效、环保的物理灭蚊工具&#xff0c;凭借其便携性和实用性在全球范围内得到了广泛应用。然而&#xff0c;许多用户对这种看似简单的小家电背后的工作原理知之甚少。电蚊拍是一种新型的灭蚊小家电&…

Mac简单测试硬盘读写速度

一、下载软件 Blackmagic Disk Speed Test 「达芬奇 磁盘速度测试」二、选中测试位置可以随便选个文件比如“下载”目录三、开始测速

⸢ 零 ⸥ ⤳ 安全体系构建内容结构

&#x1f44d;点「赞」&#x1f4cc;收「藏」&#x1f440;关「注」&#x1f4ac;评「论」在金融科技深度融合的背景下&#xff0c;信息安全已从单纯的技术攻防扩展至架构、合规、流程与创新的系统工程。作为一名从业十多年的老兵&#xff0c;系统阐述数字银行安全体系的建设路…

XP系统安装Android Studio 3.5.3并建立Java或Native C++工程,然后在安卓手机上运行

第一节 安装Android Studio 3.5.3Android Studio 3.5.3下载地址&#xff1a;Android Studio 3.5.3 December 5, 2019 Windows (32-bit): android-studio-ide-191.6010548-windows32.zip (756.1 MB) https://redirector.gvt1.com/edgedl/android/studio/ide-zips/3.5.3.0/androi…

calchash.exe和chckhash.exe计算pe文件hash值的两个实用小工具

第一部分&#xff1a; C:\WINDOWS\system32\CatRoot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}\NT5.CAT t部分内容B B D 0 2 2 2 1 A A 6 5 5 6 2 8 F 4 9 5 F 6 C D 3 0 3 9 0 8 B B E 0 0 F 9 5 9 5 第二部分&#xff1a; D:\>calchash.exe pidgen.dll BB D0 22 21 AA 65 …

lanczso算法中的额外正交化代码解释

额外正交化 定义&#xff1a;在Lanczos算法中&#xff0c;由于浮点误差&#xff0c;生成的向量可能不完全正交&#xff0c;需要额外正交化步骤。代码实现&#xff1a;def extra_orthogonalization(v, basis):for u in basis:v - u * (v.dot(u) / u.dot(u))

Rabbit 实战指南-学习笔记

第 4 章 RabbitMQ 进阶 mandatory 参数 Returning | RabbitMQ 当 mandatory 参数设为 true 时&#xff0c;交换器无法根据自身的类型和路由键找到一个符合条件的队列&#xff0c;那么RabbitMQ 会调用 Basic.Return 命令将消息返回给生产者,通过调用channel.addReturnListener …

BEVDet4D

1. BEVDet4D算法动机及开创性思路 1&#xff09;BEVDet算法概述输入输出&#xff1a;输入为6视角图像&#xff08;NuScenes数据集&#xff09;&#xff0c;输出为3D检测结果核心模块&#xff1a; 图像编码器&#xff1a;由Backbone网络和多尺度特征融合网络组成&#xff0c;处理…

当 AI 学会 “理解” 人类:自然语言处理的进化与伦理边界

大家可以去我的资源看看&#xff0c;有很多关于AI的免费资源可以下载&#xff0c;不下载也可以看看&#xff0c;真的对你有用引言&#xff1a;从 “对话” 到 “理解”——AI 语言能力的时代跃迁现实锚点&#xff1a;以日常场景切入&#xff08;如 ChatGPT 流畅回应复杂问题、A…

WPF控件随窗体大宽度高度改变而改变

前台控件中&#xff1a;Width"{Binding RelativeSource{RelativeSource AncestorTypeWindow}, PathWidth}"后台代码&#xff1a;定义在加载事件里面this.SizeChanged ProductData_SizeChanged;private void ProductData_SizeChanged(object sender, SizeChangedEven…

E10 通过RPC实现账号批量锁定与解锁

需求背景&#xff1a;账号信息由三方系统管理&#xff0c;包含账号状态&#xff0c;所以需要通过提供给三方的 Rest 接口中&#xff0c;实现账号锁定与解锁。参考基线版本&#xff1a;10.0.2506.01&#xff0c;过低的版本可能无法使用。 锁定分为两种&#xff1a; &#xff08;…

什么是AI宠物

什么是AI宠物AI宠物是由AI大脑驱动的生命体AI产品。它能主动产生情绪和意图&#xff0c;并通过情绪和意图去驱动自己的动作和行为。它根据自己的意愿和用户互动&#xff0c;不受用户控制。从一定意义上讲&#xff0c;它拥有了人工生命和自由意志。它有自己的行为逻辑&#xff0…

简单AI:搜狐公司旗下AI绘画产品

本文转载自&#xff1a;简单AI&#xff1a;搜狐公司旗下AI绘画产品 - Hello123工具导航 ** 一、平台定位与技术特性 搜狐简单 AI 是搜狐推出的多模态 AI 创作平台&#xff0c;基于自研大模型提供文生图、文生文等能力。它专注于零门槛内容生成&#xff0c;用户无需专业技能即…

vue3 3d饼图

完整3D饼图项目下载 https://download.csdn.net/download/weixin_54645059/91716476 只有一个vue文件 直接下滑到完整代码就阔以 本文介绍了如何使用ECharts和ECharts-GL插件实现3D饼图效果&#xff0c;并提出了数值显示未解决的问题。主要包含以下内容&#xff1a; 安装所需…

全球电商业财一体化趋势加速,巨益科技助力品牌出海精细化运营

行业背景&#xff1a;跨境电商进入品牌化发展新阶段随着国内电商市场竞争日趋激烈&#xff0c;跨境电商已成为中国品牌寻求增长突破的重要赛道&#xff0c;在TikTok、Temu等平台出海浪潮推动下&#xff0c;越来越多的中国品牌开始布局全球市场。然而&#xff0c;从单一市场的铺…