- 博客(59)
- 资源 (6289)
- 收藏
- 关注
原创 【JS逆向课件:第十五课:Scrapy基础】
什么是框架?所谓的框,其实说白了就是一个【项目的半成品】,该项目的半成品需要被集成了各种功能且具有较强的通用性。Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,非常出名,非常强悍。所谓的框架就是一个已经被集成了各种功能(高性能异步下载,队列,分布式,解析,持久化等)的具有很强通用性的项目模板。对于框架的学习,重点是要学习其框架的特性、各个功能的用法即可。初期如何学习框架?只需要学习框架集成好的各种功能的用法即可!前期切勿钻研框架的源码!
2024-07-22 06:40:55
503
原创 【JS逆向课件:第十四课:Pyppeteer】
异步的selenium。在 Pyppetter的背后是有一个类似 Chrome 浏览器的 Chromium 浏览器在执行一些动作进行网页渲染,首先说下 Chrome 浏览器和 Chromium 浏览器的渊源。
2024-07-22 06:37:24
618
原创 【JS逆向课件:第十三课:异步爬虫】
现在大部分视频客户端都采用HTTP Live Streaming(HLS,Apple为了提高流播效率开发的技术),而不是直接播放MP4等视频文件。HLS技术的特点是将流媒体切分为若干【TS片段】(比如几秒一段),然后通过一个【M3U8列表文件】将这些TS片段批量下载供客户端播放器实现实时流式播放。因此,在爬取HLS的流媒体文件的思路一般是先【下载M3U8文件】并分析其中内容,然后在批量下载文件中定义的【TS片段】,最后将其【组合】成mp4文件或者直接保存TS片段。
2024-07-22 06:34:25
653
原创 【JS逆向课件:第十二课:并发编程】
广义定义:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。在操作系统中,每启动一个应用程序其实就是OS开启了一个进程且为进程分类对应的内存/资源,应用程序的执行也就是进程在执行。狭义定义:一个正在运行的应用程序在操作系统中被视为一个进程举例: 我们有py1文件中和py2文件,两个文件运行起来后是两个进程。
2024-07-21 06:52:25
1002
原创 【JS逆向课件:第十一课:requests高级】
练习:抓取微博图片,url:http://blog.sina.com.cn/lm/pic/,将页面中某一组系列详情页的图片进行抓取保存,比如三里屯时尚女郎:http://blog.sina.com.cn/s/blog_01ebcb8a0102zi2o.html?1.在解析图片地址的时候,定位src的属性值,返回的内容和开发工具Element中看到的不一样,通过network查看网页源码发现需要解析real_src的值。获取https://passport.17k.com/中的书架页面里的图书信息。
2024-07-21 06:41:02
610
原创 【JS逆向课件:第十课:数据解析】
作业练习:https://sc.chinaz.com/jianli/free.html。切记:xpath表达式中不可以出现tbody标签,如果有直接将其删除跨过即可!在当前目录下新建一个test.html文件,然后将下述内容拷贝到该文件中。需求:将每一个章节的标题和内容进行爬取然后存储到一个文件中。需求:将前5页的所有id和port解析且存储到文件中。如何爬取多媒体资源(图片,音频,视频,动图)方式1:编写麻烦,但是可以实现UA伪装。html中的标签是遵从树状结构的。将爬取到的图片存储到指定的文件夹中。
2024-07-21 06:36:35
759
原创 【JS逆向课件:第九课:前端】
HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于万维网(WWW:World Wide Web )服务器与本地浏览器之间传输超文本的传送协议。超文本:超文本就是指“含有指向其他资源链接”内容的文本。大概就是,不仅仅是文字,还有多媒体:视频、图片、动画等。协议:HTTP协议就是服务器(Server)和客户端(Client)之间进行数据交互(相互传输数据)的一种形式。
2024-07-20 07:03:21
761
原创 【JS逆向课件:第八课:异常处理】
之前我们说过,不是只使用通用的异常类Exception就万事大吉了,为了效率问题,我们需要对常见的异常信息进行精准的捕获,那么如果异常出现在用户层的话,则就需要对用户操作可能会出现的异常进行判断然后精准捕获了,如何操作呢?列表推导式要这么理解,首先执行for循环,对于遍历的每一个x,代入x*x表达式中进行运算,将运算结果逐一添加到一个新列表内,循环结束,得到最终列表。比如在函数f3()调用f2(),f2()调用f1(),虽然是在f1()出错了,但只需要在f3()进行异常捕获,不需要每一层都捕获异常。
2024-07-20 06:49:23
918
原创 【JS逆向课件:第七课:模块与包】
在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护。为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式。而这样的一个py文件在Python中称为模块(Module)。模块是组织代码的更高级形式,大大提高了代码的阅读性和可维护性。解释器内建模块第三方模块应用程序自定义模块另外,使用模块还可以避免函数名和变量名冲突。
2024-07-20 06:47:19
909
原创 【JS逆向课件:第六课:文件操作】
为了防止诸如open这一类文件打开方法在操作过程出现异常或错误,或者最后忘了执行close方法,文件非正常关闭等可能导致文件泄露、破坏的问题。write()动作可以多次重复进行,其实都是在内存中的操作,并不会立刻写回硬盘,直到执行close()方法后,才会将所有的写入操作反映到硬盘上。在这过程中,如果想将内存中的修改,立刻保存到硬盘上,可以使用f.flush()方法。使用open()方法操作文件就像把大象塞进冰箱一样,可以分三步走,一是打开文件,二是操作文件,三是关闭文件。实现一个图片文件的拷贝。
2024-07-19 05:52:48
995
原创 【JS逆向课件:第五课:函数操作】
绝大多数函数在定义的时候需要接收一定数量的参数,然后根据实际调用时提供的参数的不同,输出不同的结果。注意将函数内部的参数名字,定义得和外部变量的名字一样是一种不好的习惯,它容易混淆思维,甚至发生错误。在函数定义时,如果给某个参数提供一个默认值,这个参数就变成了默认参数,不再是位置参数了。上面例子中的a,b,c就是位置参数,我们在使用add(4, 5, 6)调用时,就是将4的地址传给a,5的传给b,6的传给c的一一对应传递。也叫必传参数或者顺序参数,是最重要的、也是必须在调用函数时明确提供的参数!
2024-07-19 05:48:39
791
原创 【JS逆向课件:第四课:流程控制】
格式中,迭代变量用于存放从序列类型变量中读取出来的元素,所以一般不会在循环中对迭代变量手动赋值;代码块指的是具有相同缩进格式的多行代码(和 while 一样),由于和循环结构联用,因此代码块又称为循环体。在不少实际问题中有许多具有规律性的重复操作,因此在程序中就需要重复执行某些语句。一组被重复执行的语句称之为循环体,能否继续重复,决定循环的终止条件。规则如下:有三个变量a,b,c,其值均为自然数,其中a2+b2=c2且a+b+c=1000,求出满足要求a,b,c的所有组合。案例:求解1-10累加和。
2024-07-19 05:43:27
970
原创 【JS逆向课件:第三课:重要数据类型】
分片不会修改原有的列表,可以将结果保存到新的变量,因此切片也是一种安全操作,常被用来复制一个列表,例如newlist = lis[:]。还是有用的,有些数据一旦创建之后就不允许修改了,这些数据就适合用元组来创建,比如主机地址和端口(ip,port),(“192.168.1.1”, 80),两者捆绑在一起,不允许修改。在学完列表后,在使用元素我们会发现元组由于是一个不可变序列,则很多操作会受到限制,这不能,那不能,要你何用,我直接用列表不行吗?用方括号括起来的是列表,那么用圆括号括起来的就是元组。
2024-07-18 06:29:49
790
原创 【JS逆向课件:第二课:基本数据类型】
字符串是不可变的序列数据类型,不能直接修改字符串本身,和数字类型一样!Python3全面支持Unicode编码,所有的字符串都是Unicode字符串,所以传统Python2存在的编码问题不再困扰我们,可以放心大胆的使用中文。所谓的不可变类型,指的是类型的值一旦有不同了,那么它就是一个全新的对象。字符串属于序列类型,所谓序列,指的是一块可存放多个值的连续内存空间,这些值按一定顺序排列,可通过每个值所在位置的编号(称为索引)访问它们。字符串的内容可以包含字母、标点、特殊符号、中文、日文等全世界的所有字符。
2024-07-18 06:20:42
915
原创 【JS逆向课件:第一课:requests基础】
什么是爬虫就是编写程序,模拟浏览器上网,让其去互联网中抓取数据的过程模拟:浏览器本身就是一个纯天然的爬虫工具,爬虫相关的模块都是基于浏览器为基础开发出来的。注意:日后只要是你的爬虫程序没有爬取到你想要的数据,只有一个原因:就是你的爬虫程序模拟的力度不够!抓取:抓取网页数据分两种情况:将一个页面所有的数据抓取到将页面中局部的数据抓取到爬虫在应用场景的分类通用爬虫:将一个页面中所有的数据获取。大部分的搜索引擎中应用比较多。聚焦爬虫。
2024-07-18 06:11:00
1271
原创 【爬虫基础入门课件:第三课:数据解析】
在上一节中, 我们基本上掌握了抓取整个网页的基本技能. 但是呢, 大多数情况下, 我们并不需要整个网页的内容, 只是需要那么一小部分. 怎么办呢?这就涉及到了数据提取的问题.以上三种方案都可以从HTML中提取到你需要的内容, 这三种方式可以混合进行使用, 完全以结果做导向, 只要能拿到你想要的数据. 用什么方案并不重要. 当你掌握了这些之后. 再考虑性能的问题.
2024-07-17 08:36:37
832
原创 【爬虫基础入门课件:第二课:爬虫入门】
不知道各位是否遇到过这样的需求. 就是我们总是希望能够保存互联网上的一些重要的数据信息为己所用.比如,那么恭喜你. 本课程将十分的适合于你. 因为爬虫就是通过编写程序来爬取互联网上的优秀资源(图片, 音频, 视频, 数据)爬取的一定是 能看见的东西, 公开的一些东西.
2024-07-17 08:31:44
1319
原创 【爬虫基础入门课件:第一课:python基础内容】
if条件判断上面就是if的最基础的语法规则. 含义是, 如果条件为真, 去执行, 如果条件不真, 去执行. 这东西. 我就不拆开聊了. 关于if. 你要记住的事情是, . 以后你的程序里, 如果需要条件判断了. 就用它…举例,在写爬虫的时候. 我们会遇到这样的两种情况情况一, 数据里有一些我们并不需要的内容情况二, 页面结构不统一, 会有两种页面结构相信我, 上面的逻辑并不难. 但是, 到了后面很多小伙伴容易踩坑. 我们完全没必要用一个提取器获取所有的数据. 完全没必要…while循环关于循环,
2024-07-16 06:02:32
1073
原创 【异步爬虫:利用异步协程抓取一部电影】
我们把目光转向wbdy. 目前该案例还是可以用的.我们想要抓取网上的视频资源就必须要了解我们的视频网站是如何工作的. 这里我用91看剧来做举例. 其他网站的原理是一样的.
2024-07-16 05:41:49
733
原创 【异步爬虫:多任务异步协程】
协程是我要重点去讲解的一个知识点. 它能够更加高效的利用CPU. 其实, 我们能够高效的利用多线程来完成爬虫其实已经很6了. 但是, 从某种角度讲, 线程的执行效率真的就无敌了么?我们真的充分的利用CPU资源了么?非也~ 比如, 我们来看下面这个例子.我们单独的用一个线程来完成某一个操作. 看看它的效率是否真的能把CPU完全利用起来.
2024-07-16 05:33:21
569
原创 【异步爬虫:多线程与多进程】
进程: 运行中的程序. 每次我们执行一个程序, 咱们的操作系统对自动的为这个程序准备一些必要的资源(例如, 分配内存, 创建一个能够执行的线程. ) 线程: 程序内, 可以直接被CPU调度的执行过程. 是操作系统能够进行运算调度的最小单位. 它被包含在进程之中, 是进程中的实际运作单位. 进程与线程之间的关系: 进程是资源单位(公司). 线程是执行单位(员工). 就好比是一家公司. 一家公司的资源就是桌椅板凳, 电脑饮水机这些资源, 但是, 我们如果说一家公司正在运转着, 运行着. 那里面
2024-07-15 07:24:04
509
原创 【实战:Django-Celery-Flower实现异步和定时爬虫及其监控邮件告警】
虽然可以通过界面来监控了,但是我们想要得更多,人不可能天天盯着界面看吧,如果能实现任务执行失败就自动发邮件告警就好了。这个Celery当然也是没有问题的。Flower 是一个用于监控和管理 Celery 集群的开源 Web 应用程序。如果不想通django的管理界面监控任务的执行,还可以通过Flower插件来进行任务的监控。Flower的界面更加丰富,可以监控的信息更全。在settings.py中屏蔽到原来的调度器,加入。通过钩子程序在异常的时候触发邮件通知。在任务成功或失败的时候发邮件通知。
2024-07-15 07:14:09
800
原创 【实战:python-Django发送邮件-短信-钉钉通知】
备注:send_mail 每次发邮件都会建立一个连接,发多封邮件时建立多个连接。而 send_mass_mail 是建立单个连接发送多封邮件,所以一次性发送多封邮件时 send_mass_mail 要优于 send_mail。开启smtp服务,生成授权码。
2024-07-15 06:59:16
501
原创 【Flask从入门到精通:第十二课:常用模块、蓝图 Blueprint】
文档: https://faker.readthedocs.io/en/master/locales/zh_CN.html批量生成测试数据: https://github.com/joke2k/faker。
2024-07-14 06:21:18
1216
原创 【Flask从入门到精通:第十一课:逻辑外键、数据迁移】
也叫虚拟外键。主要就是在开发中为了减少数据库的性能消耗,提升系统运行效率,一般项目中如果单表数据太大[千万级别]就不会使用数据库本身维护的物理外键,而是采用由ORM或者我们逻辑代码进行查询关联的逻辑外键。SQLAlchemy设置外键模型的虚拟外键,有2种方案:方案1,查询数据时方案2,在。
2024-07-14 06:12:24
551
原创 【Flask从入门到精通:第十课:数据基本查询、关联查询】
所以将来实现多对多的时候,除了上面db.Table方案以外,还可以把关系表声明成模型的方法,如果声明成模型,则原来课程和学生之间的多对多的关系,就会变成远程的1对多了。常见业务:商品分类和商品、文章分类和文章、班级与学生、部门与员工、角色与会员、订单与订单详情、用户与收货地址。的情况,对于大于、等于、等等其他条件是不支持的。返回名字结尾字符为g的所有数据。
2024-07-13 05:39:08
788
原创 【Flask从入门到精通:第九课:数据库基本操作、数据表操作以及数据操作】
我们后面会把模型创建到单独的文件中,但是现在我们先把模型类写在main.py文件中。# 数据库链接配置 = 数据库名称://登录账号:登录密码@数据库主机IP:数据库访问端口/数据库名称?charset=编码类型# 动态追踪修改设置,如未设置只会提示警告# ORM运行时会显示ORM生成的原始SQL语句[调试]"""模型类定义"""# 等同于# db.init_app(app) # 加载配置并完成初始化过程"""学生信息模型"""# 声明与当前模型绑定的数据表名称"""
2024-07-13 05:32:58
513
原创 【Flask从入门到精通:第八课:ORM、Flask-SQLAlchemy】
我们使用sqlalchemy 不需要调用sqlalchemy 本身这个模块,而是采用flask-sqlalchemy ,这是一个简化了 SQLAlchemy 操作的flask扩展模块。flask默认提供模型操作,但是并没有提供ORM,所以一般开发的时候我们会采用flask-SQLAlchemy模块来实现ORM操作。SQLAlchemy是一个python语言编写的高性能的关系型数据库ORM框架,它提供了高层的 ORM 和底层的原生数据库的操作。ORM提供了一种面向对象操作数据库的方式给开发者。
2024-07-13 05:23:21
993
原创 【Flask从入门到精通:第七课:流程控制、过滤器、模板继承以及CSRF 攻击防范】
过滤器的本质是函数。当模板内置的过滤器不能满足项目需求,可以自定义过滤器。一种是通过Flask应用对象的方法进行注册通过装饰器来实现自定义过滤器进行注册注意:自定义的过滤器名称如果和内置的过滤器重名,会覆盖内置的过滤器。需求:编写一个过滤器,保留2位小数方式一通过调用应用程序实例的 add_template_filter 方法实现自定义过滤器。# 自定义过滤器# 自定义过滤器 def do_fixed(data , length) : return f"%. {
2024-07-12 06:02:11
1006
原创 【Flask从入门到精通:第六课:终端脚本命令、Jinja2模板引擎】
Flask-Script 还可以为当前应用程序添加脚本命令1. 引入Command命令基类 2. 创建命令类必须直接或间接继承Command,并在内部实现run方法或者__call__() 方法,同时如果有自定义的其他参数,则必须实现get_options方法或者option_list属性 3. 使用flask_script应用对象manage . add_command对命令类进行注册,并设置调用终端别名。# 配置})"""使用flask_script启动项目"""
2024-07-12 05:56:43
1130
原创 【Flask从入门到精通:第五课:请求全局钩子[hook]、异常抛出和捕获、context】
此处的全局钩子,其实就是类似django里面的中间件。也就是只要调用或者注册了,在http请求响应中是必然执行的。为了让每个视图函数避免编写重复功能的代码,Flask提供了通用设置的功能,即请求钩子。请求钩子是代码结论:以视图执行为中心点,before_request之前(请求过程)的先装饰先执行,after_request之后(响应过程),后装饰的先执行。
2024-07-12 05:43:12
873
原创 【Flask从入门到精通:第四课:http的会话控制】
Cookie是由服务器端生成,发送给客户端浏览器,浏览器会将Cookie的key/value保存,下次请求同一网站时就随着请求头自动发送该Cookie给服务器(前提是浏览器设置为启用cookie)。如访问fuguang.com时向浏览器中写了Cookie信息,使用同一浏览器访问baidu.com时,无法访问到fuguang.com写的Cookie信息,只能获取到baidu.com的Cookie信息。对于敏感、重要的信息,建议要存储在服务器端,不能存储在浏览器中,如手机号、验证码等信息。为什么要有会话控制?
2024-07-11 06:22:12
1062
原创 【Flask从入门到精通:第三课:http的请求与响应】
在 Flask 中,可以很方便的返回自定义状态码,以实现不符合 http 协议的状态码,例如:status code: 666# 应用实例对象def rep():"""常用以下写法"""# """原理"""# """原理"""# response.headers["Company"] = "oldboy" # 自定义响应头# response.status_code = 201 # 自定义响应状态码# 启动项目的web应用程序。
2024-07-11 06:11:50
999
原创 【Flask从入门到精通:第二课:flask加载项目配置的二种方式、路由的基本定义和终端运行】
路由和视图的名称必须全局唯一,不能出现重复,否则报错。# 1. 导入flask核心类# 2. 初始化web应用程序的实例对象# 开启debug模式# 参数1:rule设置当前视图的路由地址# 惨呼2:methods,设置当前视图的HTTP请求方法,允许一个或多个方法,不区分大小写# 3. 运行flask提供的测试web服务器程序什么是路由?路由就是一种映射关系。是绑定应用程序(视图)和url地址的一种一对一的映射关系!
2024-07-11 05:59:49
741
原创 【Flask从入门到精通:第一课:flask的基本介绍、flask快速搭建项目并运行】
旧的常用框架:django(3.0以后支持异步),flask(2.0以后支持异步)和 tornado(异步),twisted(异步)新的常用框架:FastAPI,sanic,django4.0(目前的版本属于从同步到异步改造过程中),flask2.0(目前的版本属于从同步到异步改造过程中)
2024-07-10 08:40:55
1014
原创 【爬虫入门知识讲解:xpath】
xpath在Python的爬虫学习中,起着举足轻重的地位,对比正则表达式 re两者可以完成同样的工作,实现的功能也差不多,但xpath明显比re具有优势,在网页分析上使re退居二线。xpath 全称为一种小型的由于XPath属于lxml库模块,所以首先要安装库lxml。//a./a//@calss谓语用来查找某个特定的节点或者包含某个指定的值的节点。谓语被嵌在方括号中。XPath 通配符可用来选取未知的 XML 元素。通过在路径表达式中使用“|”运算符,您可以选取若干个路径。逻辑运算属性查询。
2024-07-10 07:17:16
1202
原创 【前端从入门到精通:第十二课: JS运算符及分支结构】
程序在执行过程中,往往要根据不同的运行结果做出不同的选择或者忽略部分代码的执行,这种执行结构就是分支结构。巢状分支结构就是在双项分支或者多项分支的真区间或者假区间再次使用分支结构,这类结构统称为巢状分支结构。自增自减运算符如果在变脸后,先将变量给别人使用后,在进行自增或者自减运算。该格式的分支结构,可以控制if之后的一个完整的代码块,{}区域的所有内容。自增自减运算符如果在变量前,是先进行自增或者自减运算,在将变量给别人用。推荐使用有{}的版本的格式,带有{}版本的代码可读性高,不容易混淆。
2024-07-09 21:31:18
580
原创 【前端从入门到精通:第十一课: JS基本语法】
JavaScript 能够改变 HTML 内容JavaScript 能够改变 HTML 属性JavaScript 能够改变 HTML 样式 (CSS)JavaScript 能够隐藏和显示 HTML 元素。
2024-07-09 07:35:33
855
LCD1602 时钟(LCD1602 clock)
2024-07-01
机器人应用案例 (焊接)
2024-07-01
ds18b20温度传感器完整c程序(DS18B20 temperature sensor complete C program)
2024-07-01
神经网络学习之BP神经网络
2024-06-30
信号实验(信号与系统)
2024-06-30
汇编语言与高级语言资料介绍
2024-06-30
React JS框架介绍
2024-06-30
烽火通信EPON设备及组网方案介绍
2024-06-30
phs无线通信系统组网与维护
2024-06-30
现代通信组网与程控交换分析
2024-06-30
浅论当前计算机网络与计算机网络犯罪
2024-06-30
温度PID控制源码-基于51单片机
2024-06-29
单片机实验报告(基于51单片机)简易电子琴设计
2024-06-29
C51单片机编程案例精选
2024-06-29
51单片机实验及代码推荐
2024-06-29
51单片机实验指导精品
2024-06-29
电子竞赛必备超强51单片机知识
2024-06-29
多台51单片机MODBUS RTU多机串口通信程序源码
2024-06-29
基于51单片机的打地鼠游戏设计(源码齐全)
2024-06-29
源码公开的MCS51单片机的宏汇编器
2024-06-29
Internet Download Manager安装包v6.41.15(IDM)
2024-06-29
行业电子商务系统开发案例分析
2024-06-29
简单库存管理系统开发案例
2024-06-29
管理信息系统开发案例推荐
2024-06-29
采购员子系统开发案例精品
2024-06-29
VB图书管理系统开发案例
2024-06-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人