- 博客(44)
- 资源 (1)
- 收藏
- 关注
原创 frida安装以及使用
Java层和native层的逻辑都可以hook,电脑编写的和执行的脚本,修改之后无需重新编译和额外安装在手机上,环境配置简单,很好的支持跨平台。
2024-04-27 16:23:01 396
原创 adb---调试连接设备
访问Android官方开发者网站下载页面[https://developer.android.com/studio/releases/platform-tools),下载压缩包。2.解压platform-tools之后将对应路径加入环境变量path里面保存3.验证安装命令行使用如下命令我的设备时Goole Pixel_4 ,已root如果安装成功,将显示ADB的版本信息。##2.手机设置确保 Android 手机的开发者选项和USB 调试模式已开启。
2024-04-20 14:47:32 362
原创 升级flask之后,运行报错ImportError: cannot import name ‘EVENT_TYPE_OPENED‘ from ‘watchdog.events‘
在升级我的flask到flask-3.0.3版本之后运行项目出现如下报错。尝试安装升级watchdog版本。再次执行项目,已正常。
2024-04-20 08:49:40 214
原创 content-type对数据采集的影响,猿人学58题
它被用来告诉服务端如何处理请求的数据,以及告诉客户端(一般是浏览器)如何解析响应的数据,比如显示图片,解析html或仅仅展示一个文本等。Post请求的内容放置在请求体中,Content-Type定义了请求体的编码格式。接收端依靠请求头中的Content-Type字段来获知请求体的编码格式,最后再进行解析。经过计算可以得出结果了,分享一个简单的小案例,在写代码的过程一定要细心,少走一些弯路。仔细观察可以发现他和标准的md5长度不一样,是截取了一部分,整体代码如下。练习的时候发现请求头中少了。
2024-04-17 21:20:31 139
原创 nignx配置https证书
因为我用的是腾讯云,所以在腾讯云上面申请了一个免费ssl证书,具体可以点下面的链接。申请之后将文件解压放在路径里面。
2024-04-11 15:57:59 173
原创 git报错-Your local changes to the following files would be overwritten by merge:
有一天我在服务器拉取git仓库的代码时报错如下大概意思就是试图合并一个分支到你的当前分支,但是在你的当前分支上,有三个.pyc文件有本地未提交的修改。这些修改如果进行合并操作,将会被合并过来的分支中的对应文件内容覆盖。错误信息建议在合并之前,你需要提交你的修改,或者将它们暂存(stash)起来。这几个文件应该是服务器自动生成,因为我只在服务器做pull的操作从未做过别的操作。
2024-04-09 21:32:58 543
原创 JS中的运算符
|会从左到右执行表达式,直到某个表达式的运行结果返回true,则返回该表达式的运行结果作为整个||表达式的运行结果;如果所有表达式的直接结果均为false,则返回最后一个表达式的执行结果作为整个||表达式的结果。&:按位与运算符,将两个数的二进制的每一位进行与操作,只有两个数对应位都为 1 时结果位才为 1。,直到某个表达式的运行结果返回false,如果全部为true,则返回最后一个中表达式的执行结果。1&&10&&5||0执行结果可以看出来 &&的运算符优先级高于||希望看完你对运算符有所了解。
2024-04-02 21:52:08 630
原创 AST学习二----babel库使用
下面是一个简单的示例代码,其中包含了使用 @babel/parser 将 JavaScript 代码解析为 AST,并使用 @babel/traverse 对 AST 进行遍历和更新的过程。@babel/traverse 是一个用于对抽象语法树(AST)进行递归遍历和更新的工具库,它可以通过访问和修改 AST 节点来实现代码转换。通过@babel/generator可以将修改之后的AST代码转成js代码,示例如下。今天学习到这里了,明天继续加油!(不积跬步无以至千里,共勉)
2024-03-23 21:15:30 266
原创 AST学习入门
表示当前节点所在的行列位置,里面也有start与end节点,这里的start与上面的start是不同的,这里的start是表示节点所在起始的行列位。节点的类型是 CallExpression,它同时又包含了callee和arguments两个子节点,callee可以理解为函数名,而 arguments 则是它的参数。的子节点,所以我们在构造节点的时候,只需构造它必有的节点即可。: 表示当前节点的类型,我们常用的类型判断方法t.is********(node)**,就是判断当前的节点是否为某个类型。
2024-03-22 16:04:27 372
原创 scrapy中间件统计爬虫信息
在一次爬虫采集中,突然需求方来来个需求,说要知道每天某来源爬虫采集数量的情况首先分析,scrpay日志输出窗口是有我们想要的信息的,:整个爬虫item的总个数:爬虫完成时间:爬虫运行时间我们在scrapy源码中可以看到文件上述代码就是负责爬虫相关的日志输出同时可以注意到CoreStats.py中赋值了elapsed_time_seconds,finish_time,finish_reason等字段,如果想要获取爬虫相关的信息统计,我们只要写一个新的类继承CoreStats即可。
2024-03-20 14:36:42 1215
原创 JSVMP分析
1.jsvmp**:JS虚拟机**就是将js源代码首先编译为字节码,得到的这种字节码就变成只有操作码(opcode)和操作数(Operands),这是其中一个前端代码的保护技术。跨平台兼容性:jsvmp技术可以在不同的操作系统和硬件平台上运行,因为它是基于软件的虚拟机。性能优化:jsvmp技术可以对JS代码进行优化,提高执行效率。安全性:jsvmp技术提供了一种隔离JS代码的方法,可以防止恶意代码的攻击。提供丰富的API:jsvmp技术可以提供丰富的API,使得JS代码可以访问更多的系统资源。
2024-03-12 14:51:03 481
原创 当scrapy遇到curl_cffi,解决TLS指纹,scrapy-fingerprint解决ja3指纹
scrapy中处理JA3指纹,TLs指纹
2023-09-25 20:28:56 1193 3
原创 docker使用报错Job for docker.service failed because the control process exited with error code.
在新机器安装启动docker报错,Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.
2023-06-26 13:26:55 298 2
原创 git push提示Everything up-to-date报错
今天在提交代码的时候明明做了修改,但是提交的时候总是提示Everything up-to-date,commit之后提示如下。提示未追踪到文件,经过仔细查看之后发现我当前所在的目录并不是在根文件目录下。回退到根目录下,之后再次commit并push,提示已经成功。...
2022-09-01 16:19:48 372
原创 <twisted.python.failure.Failure OpenSSL.SSL.Error: [(‘SSL routines‘, ‘‘, ‘wrong signature type‘)]
[<twisted.python.failure.Failure OpenSSL.SSL.Error: [('SSL routines', '', 'wrong signature type')]>]解决处理
2022-08-30 13:23:33 2249 1
原创 scrapy报错twisted.internet.error.ReactorAlreadyInstalledError: reactor already installed
默认安装scrapy最新版本,不能正常使用Gerapy_pyppeteer,回退版本到scrapy==2.5.1之后代码可以正常运行pip install scrapy==2.5.1
2022-04-25 15:41:20 2222 5
原创 gerapy配置使用
gerapy配置使用1.在主机直接安装pip3 install -U gerapycd gerapygerapy migrate2.创建用户gerapy createsuperuserroot@fc991c742234:/app/gerapy# gerapy createsuperuserUsername (leave blank to use 'root'): tieyongjieEmail address:Password:Password (again):Superuse
2022-04-15 10:56:04 1404
原创 scrapy中使用布隆过滤器BloomFilter
布隆过滤器 BloomFilter1.前言 “去重”是日常工作中会经常用到的一项技能,在爬虫领域更是常用,并且规模一般都比较大。 去重需要考虑两个点:去重的数据量、去重速度。为了保持较快的去重速度,一般选择在内存中进行去重。数据量不大时,可以直接放在内存里面进行去重,例如python可以使用set()进行去重。当去重数据需要持久化时可以使用redis的set数据结构。当数据量再大一点时,可以用不同的加密算法先将长字符串压缩成16/32/40个字符,再使用上面两种方法去重;当数据量达到亿(甚至十亿
2022-04-15 10:50:44 1489
腾讯云服务器ubuntu安装mysql.md
2020-05-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人