自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 如何在 Python 中混合使用同步和异步函数?

异步编程可以提高应用程序的性能和吞吐量,因为它可以充分利用 CPU 和 I/O 资源。当某个任务被阻塞时,事件循环可以切换到另一个任务,从而避免浪费 CPU 时间。此外,异步编程还可以简化代码,使其更易于维护和调试。我们最常用的是同步编程,在同步场景中,某个任务被阻塞时,整个线程都会被挂起,直到该任务完成,所以为了避免整个程序被阻塞的情况,又引入了多线程和锁。同步编程通常需要使用锁和其他同步原语来确保线程安全。混合编写的场景在实际开发过程中,通常会遇到同时进行异步和同步操作的场景。

2023-03-26 14:16:05 5295 3

原创 Python 泛型 - 如何在实例方法中获取泛型参数T的类型?

分析下源码。只是一个类型,并不是字典类,但是我们可以通过一些方法,拿到其真正意义上的类。typing库提供了get_args和get_origin函数。

2023-02-23 14:33:38 1552

原创 Flask 源码分析总结:Context 上下文原理

首先明白 Context 是什么,这东西常被翻译为上下文,其实像以前的阅读理解题,“请结合语境上下文,谈一谈作者的感想”。一个句子,单独来看,我并不知道其完整的含义,必须要结合上下文语境才能理解。举个例子,我大喊一声“卧槽”。有人就会有疑问,“诶,发生了什么事情”(当然,也可能心理暗道:”这sb玩意儿“)那么,上文,就是已经发生的事,下文就是即将发生的事。

2022-08-23 21:44:14 1214

原创 原来 Python 也有重载?

Python作为一门动态语言,其实并不需要重载,但是如果你愿意的话,可以显式的声明重载。先简单介绍下什么是重载(Overload)。重载(overloading) 是在一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同。提出问题简单的举个例子。现在有一个get函数,接收参数v,v的类型为整数,最终get的返回值也是整数类型。def get(v: int) -> int: return v + 1现在又有一个同名的get函数,接收参数v,v的类型为字符串,最终get的

2022-05-03 18:43:35 1898 2

原创 初见Python中的泛型

这里写目录标题类型提示了解标准库typing初见泛型小试泛型泛型示例完整代码不知道从什么时候起,我写Python代码习惯给变量加上类型注解。这虽然降低了Python的灵活性,但确确实实在后续维护的过程中提供了很好的帮助。第一次听到泛型这个词,是在Java中了解到的,但具体做什么,有什么作用,都是比较模糊的。因为我本身对Java只是了解并且也没有用Java做过什么实际项目,所以一直对泛型不太明白。在官方文档中描述了泛型的使用方法,我将从小例子开始,看看泛型是如何帮助我们的。类型提示当前有一个get函

2022-04-17 20:26:17 9186 2

原创 【Airflow踩坑】XCom大数据传递反序列化失败

我在做一个ETL任务时,发现上流任务的返回值(5W条数据),无法在下流任务中解析出来。默认使用的是以Json数据作为任务之间的值传递。查看日志,抛出异常如下:json.decoder.JSONDecodeError: Unterminated string starting at: line 1 column 65528 (char 65527)json反序列失败了。如果是采用pic

2021-12-30 17:39:28 1747 2

原创 【入门Airflow】 如何实现动态DAGs ?利用多任务提升效率

静态多任务造点假数据from faker import Fakerimport pymongofaker = Faker(locale='zh_CN')client = pymongo.MongoClient("mongodb://localhost:27018")coll = client.get_database("test_db").get_collection("10w")docs = [{"username": faker.language_name(), "age": fake

2021-12-19 15:48:11 2801 5

原创 【入门Airflow】Connection管理|如何连接数据库?

在很多时候,我们都在和数据是打交道,所以经常会去做一些数据库连接,比如Mysql、Mongo等等。如果直接把数据库连接写在DAG中,这虽然是可行的,但这会暴露数据库连接等敏感信息,并且当数据库连接信息发生变化时,维护成本也将大大提升。了解ConnectionAirflow提供了Connections 帮助用户管理各种连接(不仅限于数据库连接)。打开Airflow Web,选中Admin Connections即可管理所有连接。我们使用docker-compose快速搭建的Airflow默.

2021-12-18 15:33:35 3536

原创 【入门Airflow】轻松实战第一个的DAG编写

我们接触一个新的框架总会有许多新概念,这些概念虽然比较重要,但我想它的功能才是我们初步接触最想体验的,所以我更偏向于在使用的过程中去逐渐了解。本文将从实际需求出发完成一个DAG的编写,并且我会写些BUG,以达到避坑的目的。需求现在我们有一个需求,每天定时请求下方接口,并把数据保存成文本文件。https://www.bing.com/HPImageArchive.aspx?format=js&idx=1&n=10&mkt=en-US分析一共两个步骤:请求接口;

2021-12-16 22:29:39 4212 1

原创 【入门Airflow】 使用Docker在本地快速搭建Airflow

本文主要参考官方文档编写。我将顺着官方文档的流程在本地安装Airflow ,并且附上安装过程的截图。其实官方文档步骤写得都是比较详细,奈何这英语能力真的拉跨。不过还是建议大家在使用过程中遇到的任何问题,优先去查看官方文档,有奇效。​官方文档:https://airflow.apache.org/docs/apache-airflow/stable/start/docker.html生产准备这里Airflow官方建议我们不要使用当前这种“快速入门”的方式用在生产环境。本文的这种方式就供我们

2021-12-16 18:39:38 7068 7

原创 一个脚本解决CSDN远程图片转存失败的问题

文章目录前言接口分析接口签名X-Ca-KeyX-Ca-NonceX-Ca-Signature接口参数效果代码前言平时写文章用的是Typroa+PicGo,我贴的所有图片都是保存在oss上的,当我把带有远程图片地址的markdown粘贴到csdn的编辑器中时,往往存在一个问题,总有一部分图片会转存失败,但是我的oss 没有设置防盗链。出现上诉情况,我每次都必须手动去查看哪些图片失效,并且重新上传。(或者在编辑器中重新多次粘贴markdown)于是我想,写一个脚本,提前将所有的图片外链上传至CSDN服务

2021-06-17 20:19:43 756 1

原创 小试牛刀-利用AST平坦化一段瑞数代码

文章目录前言第一式:鬼影迷踪第二式:森罗万象处理逻辑Step1-处理if...else if...Step2-补全if...else...Step3-平坦化小结参考文章前言最近一直在学习AST相关的知识,本篇文章就来小小的尝试下,利用AST平坦化控制流。正常的执行逻辑: a -> b -> c混淆后的执行逻辑则可能是这样:a -> d -> b -> d -> c -> d下方是从瑞数中提出的一段代码。源代码function func (_$eE)

2021-06-16 22:51:15 2871 9

原创 JavaScript AST抽象语法树常见节点及结构

前言最近开始接触AST,用于解决JS代码混淆的问题。在看@渔哥的文章,虽然目前还是有点云里雾里的。本文总结了常见的节点类型及结构,推荐使用下方网站,结合例子对照观察。工具网站:https://astexplorer.net/Program(程序)结构:{ "type": "Program", "body": [], // 多个节点 "sourceType": "module", "range": [] //代码起始位置}Identifier(标识符)

2021-06-06 15:16:17 3147 1

原创 【瑞数】维普期刊搜索接口逆向总结_2_获取Cookie

文章目录前文回顾提出问题问题1:Cookie从何而来?问题描述hook查看`GW1gelwM5YZuT`何时生成问题2:搜索页面不匹配问题描述抓包分析如何获取“页面Cookie”页面Cookie的自动化获取总结前文回顾在【瑞数】维普期刊JS逆向详细流程及4000字爬虫总结(1)一文中,成功拿到了搜索接口的签名。本文主要探究cookie的获取。接口签名的生成与获取cookie的生成与获取基于浏览器环境的爬虫如何部署?关于本次瑞数解密的总结提出问题一提到cookie的获取,第一想法就是简单

2021-05-29 20:40:10 5384 10

原创 【瑞数】维普期刊JS逆向4000字详细流程_1_获取接口签名

文章目录前言过debugger定时器debugger死循环debugger分析搜索接口签名在何处生成?中场休息代码来源分析分析代码来源注入代码设置签名为全局变量剔除debugger小结签名测试前言我所用的方法基于浏览器环境的,非硬解(头秃ing????),文章较长,建议收藏。这是我第一次接触瑞数加密,比较难,不过学到的东西也是挺多的,也是因为我第一次解瑞数,所以文章写得比较详细甚至是啰嗦,这篇文章大致是以我逆向的思路去写的,应该适合像我这样从未接触过瑞数的朋友。这次逆向总结,估计会写3到4篇文章。

2021-05-26 22:25:31 12399 36

原创 玩物得志H5列表页签名逆向总结

文章目录前言kl_tkl_trace_idkl_device_idkl_signmTO总结前言网址:aHR0cHM6Ly9oNS53YW53dWRlemhpLmNvbS9tYWxsLXdlYi9jYXRlZ29yeS9jbGFzc2lmeS8xNjE5MTYxNDM3NDMxP3RleHQ9JUU1JTkyJThDJUU3JTk0JUIwJUU3JThFJTg5JmNpZD0xMCZmYWNhZGVDYXRlZ29yeUlkPTEwJmlzU2hvd0F1Y3Rpb25GaXJzdD0xJl9fSGd

2021-05-02 12:11:16 849

原创 CSS字体加密反反爬通用方法

前言对于CSS字体加密,我目前遇到了这几种情况:字体字形坐标点与编码之间的对应关系不会随着多次请求而变化,例如:58同城房子出租字体字形坐标点每次请求时,位置不固定,但是每个文字的打点数量一致,例如:猿人学第7题字体的打点坐标点与打点数量随着每次请求都会发生变换,例如:58同城招聘我们之所以认为1这个形状是数字一。是因为我们通过学习后才懂得,“哦!这个是 ‘1‘ 。”所以,为了让电脑识别出文字,就可以依靠机器学习,啊,但是我不会。直接上手机器学习针对的是比较难识别的图像,例如:复杂的验证码。

2021-04-27 20:07:12 991 2

原创 雷速体育Canvas文字加密逆向总结

网址:https://live.leisu.com/wanchang可以看到这个比分是使用canvas绘制上去的。了解Canvas首先了解下canvas是一个可以使用脚本(通常为JavaScript)来绘制图形的 HTML 元素.例如,它可以用于绘制图表、制作图片构图或者制作简单的(以及不那么简单的)动画.主要了解下 canvas绘制文本https://developer.mozilla.org/zh-CN/docs/Web/API/Canvas_API/Tutorial/Drawing_

2021-04-10 15:10:18 3372 18

原创 Scrapy-Redis非多网址采集的使用

问题描述默认RedisSpider在启动时,首先会读取redis中的spidername:start_urls,如果有值则根据url构建request对象。现在的要求是,根据特定关键词采集。例如:目标站点有一个接口,根据post请求参数来返回结果。那么,在这种情况下,构建request主要的变换就是请求体(body),API接口是不变的。对于原来通过url构建request的策略就不再适用了。所以,此时我们需要对相应的方法进行重写。重写方法爬虫类需要继承至scrapy_redis.spide

2021-01-29 15:01:11 4197

原创 Python使用Protobuf&&如何赋值&&如何正反序列化

此文主要是总结,python使用protobuf的过程,如何序列化和反序列化,对不同类型的字段如何进行赋值。

2021-01-17 18:09:57 6784 5

原创 Scrapy-Redis使用教程&&将现有爬虫修改为分布式爬虫

前言scrapy爬虫框架非常好用,如果再配合scrapy-redis进行分布式爬取,爬取速度将进一步提升!本文小结了scrapy-redis的使用方法以及如何将现有爬虫通过scrapy-redis更改为分布式爬虫。使用scrapy-redis改造前:import scrapyclass ExampleSpider(scrapy.Spider): name = 'example' allowed_domains = ['example.com'] start_urls

2021-01-16 20:18:52 1607 1

原创 【Windows版本】Docker国内直链高速下载

下载链接Docker For Windowshttp://assets.z2blog.com/software/InstallDocker.msiDockerDesktophttp://assets.z2blog.com/software/Docker%20Desktop%20Installer.exe安装教程安装有手就行!主要是会遇到各种问题!下载软件,双击打开打开Hyper-V打开控制面板 -> 卸载程序 -> 启用或关闭Windows功能启用Hyper-V

2021-01-02 19:59:33 819

原创 【解决方案】VmwareTools显示灰色无法安装

VMware不安装VMware Tools无法全屏,然后实机之间不能传输文件等。安装Vmware Tools显示是灰色的,详细解决方案如下打开虚拟机设置,CD/DVD 选择ISO映像文件在Vmware的安装目录下选择Linux.iso,然后确定(如果弹出弹窗,选择 “是”)然后 点击虚拟机的右下角磁盘的图标。点击连接此时打开文件浏览器,可以看到Vmware Tools,然后解压VmwareTools.xxxx.tar.gz在解压后的文件夹中,执行vmware-install.plsu

2020-12-27 22:08:27 374 2

原创 通过JS逆向ProtoBuf 反反爬思路分享

前言本文意在记录,在爬虫过程中,我首次遇到Protobuf时的一系列问题和解决问题的思路。文章编写遵循当时工作的思路,优点:非常详细,缺点:文字冗长,描述不准确protobuf用在前后端传输,在一定程度节约了带宽,也为爬虫工程师增加了工作量。遇见Protobuf一拿到网站,F12查看是否有相关数据的请求接口ok! 接口找到了,看下请求参数吧!emmm~~ 为啥请求参数是乱码?平时见着的都是这个样子滴?可以直接看到参数!哎,咱们这初出茅庐的菜鸟,乖乖搜搜,看看有没有前辈们写过相关的文章

2020-12-26 11:10:34 4582 18

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除