随笔分类 - 爬虫高级__JS逆向__App逆向
高级爬虫专项课程
摘要:JS逆向03:字体反爬、JS反调试破解 jsvmp : 代码虚拟化保护方案 ast : 抽象语法树 1.字体文件、字体反爬 ### 1 字体文件 .ttf .woff 或 .eot 在计算机内存中,文字就是一堆二进制(unicode),要以文字图形的样子,展示给用户看 就要指定 它们之间的对应关系,
阅读全文
摘要:JS逆向02:重现JS代码、加密逻辑、逆向经验 一、JS逆向方案二:重现JS # 重现JS代码 根据JS代码的逻辑,用python代码,一步步 将JS代码逻辑还原 改换成我们自己的代码,实现JS代码同样的功能 # 缺点: 在加解密上,仅限于通用的加密、解密,可以使用python重现逻辑 但若是网站自
阅读全文
摘要:JS逆向01:浏览器工具、抓包工具、PyExeJs模块、扣JS代码 # 逆向的关键点: 加密 或解密 的入口 一、浏览器工具 1.1 显示请求协议 # protocal n.协议 # http协议的版本: http/1.1 、h2 # 大多数网站是两者协议兼容,极少数的网站 会检测http协议的版本
阅读全文
摘要:JavaScript04:拓展进阶 一. jsonp # 0 前提:浏览器同源策略 限制跨域 浏览器的同源策略,浏览器的基本安全策略 不允许去不同的url地址获取数据,即域名、端口、协议必须相同 # 请求访问实质是可以的,只是返回的数据被浏览器拦截,不接受而已 # 1 访问服务器的目的 1.加载图片
阅读全文
摘要:JavaScript03:jQuery与Ajax jQuery是一个曾经火遍大江南北的一个Javascript的第三方库,现在前端使用很少了,但依旧有很多网站是用这个写的,只需要读得懂 jQuery的理念: write less do more. 其含义就是让前端程序员从繁琐的js代码中解脱出来.
阅读全文
摘要:JavaScript02: 高级进阶 一. 变量声明 1.1 变量提升 // 以下代码,或多或少会有些问题的 function fn(){ console.log(name); var name = '大马猴'; } fn() // 问题: name变量先使用,再定义 这么写代码,在其他语言里. 绝
阅读全文
摘要:JavaScript01: 基础入门 JavaScript 是一门能够运行在浏览器上的脚本语言,简称JS。 首先,Javascript这个名字的由来就很有意思,不少人认为 Javascript 和 Java 貌似很像,容易想象成Java的脚本 但其实两者之间没有任何关系,纯粹是商业碰瓷。 既然JS是
阅读全文
摘要:一 抓取需求 # 抓取需求 start_url = 'http://ks.wangxiao.cn/' 抓取 首页 各分类下 > 各种考试 > 考点练习里 各科目的 练习题 eg: 工程类 > 一级建造师 > 建设工程经济 >章节 # 存储需求: 文件存储 题目中可能包含图片 md格式比较合适 按照分
阅读全文
摘要:Scarpy05--增量式爬虫、分布式爬虫 一. 增量式爬虫 顾名思义:可以对网站进行反复抓取,然后发现新东西了就保存起来,遇到了以前抓取过的内容就自动过滤掉即可 其核心思想:去重,并且可以反复去重。随时运行一下,将不同的数据保存出来,相同的数据去除掉(不保存)即可 增量爬虫的核心:去除重复 去除u
阅读全文
摘要:Scrapy04--CrawlSpider、链接提取器、源码模板文件 案例:汽车之家,全站抓取二手车的信息 来区分Spider 和 CrawlSpider 注意:汽车之家的访问频率 要控制一下, 要不然会跳验证 settings.py 中设置 DOWNLOAD_DELAY = 3 一、常规Spide
阅读全文
摘要:Scrapy03--分页、处理cookie与中间件 一、分页(多页)抓取思路 ### 不涉及scrapy,所有网站分页的抓取思路 ### 1.正常的 普通分页 分页表现: 上一页 1,2,3,4,5,6 下一页 # 情况1: 页面源代码中 有分页的url 解决方案: 1.访问第一页 > 提取下一页的
阅读全文
摘要:Scrapy02--管道 0. 关于管道 上一节内容,我们已经可以从spider中提取到数据. 然后通过引擎将数据传递给pipeline 那么在pipeline中如何对数据进行保存呢? 主要针对四种数据存储,展开讲解 前三个案例以:https://match.lottery.sina.com.cn/
阅读全文
摘要:Scrapy01--基本介绍与初步使用 一、爬虫工程化 何为工程化,就是让你的程序更加的有体系,有逻辑,更加的模块化. 到目前为止,我们所编写的爬虫我们都是从头到尾的每一步都要亲力亲为. 这样做固然有其优点(可控性更好),但是各位请认真思考. 这样的代码逻辑是不能形成批量生产的效果的(写100个爬虫
阅读全文
摘要:01.浏览器 # 一个网页的加载全过程 1. 服务器端渲染 html的内容和数据在服务器进行融合. 在浏览器端看到的页面源代码中. 有你需要的数据 2. 客户端(浏览器)渲染 html的内容和数据进行融合是发生在你的浏览器上的. 这个过程一般通过脚本来完成(javascript) 我们通过浏览器可以
阅读全文
摘要:一 前期准备 1.1 概述 selenium本身是一个自动化测试工具。它可以让python代码调用浏览器,并获取到浏览器中加载的各种资源。 我们可以利用selenium提供的各项功能, 帮助我们完成数据的抓取 1.2 学习目标 掌握 selenium发送请求,加载网页的方法 掌握 selenium简
阅读全文
摘要:案例:抓取每日影视的m3u8视频 1 思路分析 练习:抓取 每日影视 首页/域名 https://sp.weoknow.com/ 无耻之徒视频页:https://sp.weoknow.com/index.php/vod/play/id/28124/sid/1/nid/1.html # 分析 0:获得
阅读全文
摘要:抓取m3u8类型的视频 1 思路步骤 视频url:https://www.9meiju.cc/mohuankehuan/shandianxiadibaji/1-1.html 打开网址分析当前视频是由多个片段组成还是单独一个视频 如果是一个单独视频,则找到网址,直接下载即可 如果为多个片段的视频,则需
阅读全文
摘要:一 协程概念 # 1 协程 又称微线程(纤程),是一种用户态的轻量级线程 # 2 子程序 在所有的语言中都是层级调用的 比如A中调用B,B在执行过程中调用C C执行完返回,B执行完返回,最后是A执行完毕 这是通过栈实现的,一个函数就是一个执行的子程序 子程序的调用总是有一个入口、一次返回,调用的顺序
阅读全文
摘要:一 线程 1.1 概念 线程 在一个进程的内部,要同时干多件事,就需要同时运行多个“子任务”,把进程内的这些“子任务”叫做线程 是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位 一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同
阅读全文
摘要:一 多任务原理 1.1 概念 现代操作系统比如Mac OS X,UNIX,Linux,Windows等,都是支持“多任务”的操作系统 就是操作系统可以同时运行多个任务 1.2 实现原理 单核CPU实现多任务原理 操作系统轮流让各个任务交替执行 QQ执行2us(微秒),切换到微信,在执行2us,再切换
阅读全文