脚本刷课思路-1
前言
闲来无事,看了一下后台文章的阅读数据,发现随便乱写的 验证码绕过
居然是历史最高的阅读,惊了,我也不知道是对验证码绕过有兴趣,还是对刷课的方法有兴趣
所以反正闲着也是闲着,就写个爬虫刷课的思路,也欢迎指点,这部分,我要分两篇来写
一呢,主要是我懒,明天都周六了,就应该躺在床上玩手机浪费时间,不应该学习了
二呢,是将基础篇和思路篇分开来,这样会好点(而且我还能多水一篇)
正文
那么众所周知的是,网页分为,动态网页和静态网页这两个,这两者的区别就在于,他页面的数据是否有进行交互
比如你用自己的账号 Elapse
登录了一个论坛
你在进入个人中心时,显示的肯定是你 Elapse
的账号信息
但是这个时候,你右键查看源代码的时候,会发现你的数据并不在源代码中,在相对应的位置可能是一串你看不懂的代码
这是因为,这个网页的数据,是从后端的数据库(或者是其他类数据库的文件)中获取来的,那么如果他页面不是动态的,名字那个地方不是一串代码,会发生什么事呢
用户B用 Ernket
这个ID登录了论坛,发现
个人中心里居然是别人的信息,嗨呀,气不气,气死了,这个用户B辛辛苦苦上了一天的网课,结果全计到用户A的头上去了,心态爆炸
所以,任何这种需要数据交互的地方,都是动态页面,因为你总不能,一个网站成千上百的用户,首页打开来全是”欢迎您 Elapse“而不是显示你的名字
但是有一个问题就随之而来了,我爬虫,请求页面的时候,不也是请求到这些乱七八糟的玩意吗,那我还怎么刷课啊,内容我都找不到了
那么前面提到了一个,网页的数据,是从别的地方请求来的,这种东西,叫 API
,也叫接口
我们假设,用户登录成功后,会有一个参数
id=123456
这个参数,是这个用户的ID,当网页登录成功后,他会通过接口,将id这个参数发送过去,服务器在接收到了之后查找,找到了之后,就打包发送回去
这个时候网页A收到了数据a,将a打开来一看,用户名、课程名全在上面,于是就一一对应上去相应的位置
所以,你爬虫访问页面没有数据时,这个时候,只需要轻按下你电脑的 F12
,然后点击 XHR
这样就会显示当前页面,请求了哪些接口,你在根据返回的内容判断这个接口是做什么的就好了
你可以通过开发者工具,来看他请求了哪些页面,用的参数是什么,以及返回的内容是什么,根据这些,来编写程序,爬取你想要的内容
有没有好看的小说推荐啊?
- 用多个类别来进行微调
- Asp.Net4.0/VS2010新变化(2):网站自动预热
- Asp.Net4.0/VS2010新变化(1):web.config与publish
- 任天堂将推出Nintendo Labo 域名保护意识墙
- 表格效果
- ROR学习笔记(2):Asp.Net开发者看ROR
- 图片的javascript延时加载
- 全世界最短IE判定if(!+[1,])的解释
- Log4Net与Log2Console配合时中文问题的解决
- 如何改变AspNetPager当前页码的默认红色?
- Flash/Flex学习笔记(48):反向运动学(下)
- 如何给sublime text3安装汉化包?so easy 哦
- Flash/Flex学习笔记(47):反向运动学(上)
- 汉诺塔问题算法介绍
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- CameraX 封装二维码扫描组件
- Kotlin拓展函数的真身
- 一个一年没解决的ClassNotFoundException|类加载机制探索
- 我有个大胆的方案可以提高ARouter和WMRouter的编译速度
- Tornado模板对空白字符的处理与解决方案
- View的有效曝光监控(上)|RecyclerView 篇
- PHP绕过open_basedir列目录的研究
- View的有效曝光监控(下)|ScrollView NestScrollView篇
- 聊聊AbstractProcessor和Java编译流程
- Okhttp如何开启的Http2.0
- PHP Execute Command Bypass Disable_functions
- 聊聊Android编译流程
- Android组件化问题思考
- 最近面试碰到的两道算法题|面试相关
- Thread也会OOM吗?