- 博客(38)
- 资源 (1)
- 收藏
- 关注
原创 爬虫逆向——某建筑市场监管平台的滑块验证码分析
滑块验证码图像中两个灰度不同的相邻区域的交界处,必然存在灰度的快速过渡或称为跳变,它们与图像中各区域边缘的位置相对应,边缘蕴含了丰富的内在信息,如方向、阶跃性质、形状等,沿边缘走向的像素变化平缓,而垂直于边缘方向的像素变化剧烈。即最小的坐标x就是验证码接口中的 moveX参数。1、首先看验证码样式,可以看到是个滑块验证,包含一张带缺口的背景大图和一张用于拖动的小图,这类图片处理起来就比较简单。重点看一下响应预览,返回数据是一个列表,观察可知0、1元素分别是小图和大图的bs64编码,2、3元素用处下面会用到。
2023-05-11 18:25:01
1706
1
原创 JS逆向——裁判文书网(详细图文步骤)
登录状态验证 写在前面:本篇博客很长,都是手把手一步一步的教程,跟着做就能出结果,文章总共分为以下三部分,我也会在3个部分中详细的说明步骤(1)接口请求头参数验证(2)接口响应数据DES3加密(3)登录状态验证一、接口请求头参数验证1、以“民事案件”专栏为例,切换到“民事案件”专栏,点击翻页,观察控制台中的网络请求,rest.q4w结尾的接口及为数据接口。2、点击打开请求详情,观察请求和响应3、请求中数据校验主要是。
2023-01-30 10:55:45
4043
28
原创 JS逆向——工信部ICP、IP、域名信息备案管理平台
从此处js可知token参数是请求 “auth”结尾的 接口的返回数据——》通过观察此时的作用域,可看到接口的返回值,根据js代码可知bussiness即为校验参数token的值。1、页面中请求接口,观察请求头可发现,校验参数token为加密的字符串,根据该字符串并不能直观得到所用的加密方式是什么。7、全局搜索 关键字,即可定位到该参数生成的地方,可知为MD5加密——》在此处打断点观察参数 g、A、I。追踪信息如下,先跟进G.getToken()——》指向位置为蓝框部分——》继续跟进B.auth()
2022-12-30 16:40:03
1411
原创 K8S中启动的POD无限重启
目录问题描述:排查:原因:解决:总结:1、启动容器时前端控制台一直是“期望”,并没有“就绪”状态的容器2、查看docker ps -a 发现容器是“Exited (0)”状态3、kubeclt get pods 后发下pod处于“CrashLoopBackOff”状态kubectl describe pod 查看pod状态信息 从以上信息可以看出,拉取镜像正常,创建镜像也正常,然后就退出“Back-off restarting failed container”由于启动容器后,容器内部没有常驻的前台进程,导
2022-06-24 10:38:39
4616
原创 kubeadm config images pull 拉取镜像失败的问题
kubeadm init 失败 kubeadm config images pull 拉取不到镜像 国内防火墙 在运行 kubeadm init 之前可以先执行 kubeadm config images pull 来测试与 gcr.io 的连接,kubeadm config images pull尝试是否可以拉取镜像,如果你的服务器再国内,由于某些原因,是无法访问"k8s.gcr.io", "gcr.io", "quay.io" 2 从国内
2022-06-23 17:17:14
10328
5
原创 k8s安装——ubuntu
本次安装的docker和k8s版本为:ubuntu -v20.04k8s -v1.23.1主机内网地址说明47.200.162.6172.31.186.226master节点,能连外网,至少2核CPU,2G内存47.200.168.250172.31.186.227node节点,能连外网,至少2核CPU,2G内存三、设置k8s环境准备条件(所有机器)四、安装与配置k8s 1 安装 kubelet kubeadm kubectl(master上执行)安装如果报错的话
2022-06-23 16:57:47
13793
13
原创 xpath如何选择不包含特定子节点的节点?
xpath如何选择不包含特定子节点的节点?今天在抓取一个新闻页时,遇到了一个小麻烦,正文部分结构大致如下:<div class="content"> <p>hello word</p> <p>A <em>ffsdf</em>jkfjg</p> <p>kgor <a href="">jfijr</a></p> <p><i
2020-05-28 16:21:57
5063
2
转载 简单的h5表白代码
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" /> <title>无聊</title> <style type="text/css"> body { margin: 0;...
2019-12-16 16:54:23
10826
1
原创 DockerFlie中设置crontab定时任务,以及new crontab file is missing newline before EOF, can‘t install.错误的解决方法
DockerFlie中设置crontab定时任务new crontab file is missing newline before EOF, can't install.错误的解决方法问题描述:(系统ubuntu)想要在docker容器创建是就自动新建一个crontab定时任务,用于项目打包成docker容器时可以定时在容器中执行一些命令解决方法:首先,在项目目录下创建cro...
2019-12-16 16:25:25
6596
3
原创 关于Flask框架中启动Scrapy爬虫框架时的几种问题的解决
Flask结合Scrapy的使用时遇到的几个问题一、Scrapy 1.7.1 - no active project Unknown command: crawl Use "scrapy" to see二、ValueError: signal only works in main thread三、subprocess.CalledProcessError: Command...returne non-zero exit status 2.四、接口阻塞等待爬虫运行
2019-07-24 15:54:02
4376
4
原创 Python+Appium实现控制app
在这之前需要做好以下几个步骤:1.java开发环境JDK2.android SDK(platform/platform tools/tools/build tools)3.python下载安装(pip)4.appium下载安装(服务端+客户端)5.安装appium-python-client第一步:安装JDK,这里准备了很详细的步骤,没装JDK的请点这里https:...
2019-03-26 14:26:13
24200
2
转载 scrapy-redis 更改队列和分布式爬虫
为初学者方便对分布式爬虫的学习,总结了一下自己的理解和网上的知识点初学者的几个疑问点:1.什么是分布式爬虫?请参考:https://blog.csdn.net/zhusongziye/article/details/804574872.分布式爬虫需要掌握哪些技能?scrapy-redis原理3.scrapy-redis是干吗用的?记分布式爬虫关键点:(1)scrap...
2019-02-24 15:40:05
1749
原创 关于scrapy框架中遇到需要登录时的解决办法
最近在工作中频繁遇到需要登录后才能抓取的数据,但也不是没有解决办法,以往解决办法如下:A. 现在浏览器里登录,然后把登录后的cookie粘贴到代码中去请求,这样就相当与利用cookie"伪造"了一个分身,从而跳过登录验证。这样往往可以解决大部分需求,但是遇到需要crontab定时爬取就显得鸡肋。cookies是有生存时间的,一旦cookies死掉那么服务器上正在跑的代码也会崩溃掉,如果还...
2019-01-24 18:16:32
2115
3
原创 xpath中根据指定文本内容定位标签
#scrapy框架中response.xpath('//div/span[contains(text(), "指定文本内容")]').extract()#其它browser.find_element_by_xpath('//button/span[contains(text(), "指定文本内容")]').click()指定文本内容 可以是 匹配全部文本 也可是 匹配部分文本...
2019-01-21 14:27:12
22671
原创 详谈Python的高级特性、函数式编程、高阶函数
1、什么是Python的高级特性?这个问题对于许多正在学习Python的小伙伴来说可能会很疑惑?很多人知道这个名词,但不知道这玩意到底是什么。其实,Python作为一门高级语言它有许多的内置函数,运用这些函数可以很方便的完成一些功能,而这些特性,笼统的可称为Python的高级特性。简单地说Python的高级特性就是一些Python函数的高级用法。(1)集合的推导式 列表推导式,使用一...
2018-11-06 10:08:21
309
转载 tesserocr.cpp(514): fatal error C1083: 无法打开包括文件: “leptonica/allhead——windows下tesserocr的安装
windows下tesserocr的安装在使用pip安装tesserocr时,会遇到如标题一样的问题,原因是安装了Anaconda,应使用Anaconda的包管理工具conda进行安装。解决方法:在电脑上装有Anaconda的情况下,命令行输入:conda install -c simonflueckiger tesserocr注意:在Solving environment: ...
2018-11-01 10:02:54
2891
原创 Python爬虫笔记————抓取 猫眼电影排行榜Top100
注:初学爬虫,本节仅使用requests库和使用正则作为解析工具 最近学习爬虫,找个比较简单的网页练习了一下,作为初入爬虫的小白,不足之处还请大家多多指教。一、分析url首先,打开目标站点https://maoyan.com/board/4,打开之后便看到榜单信息: 排名第一的电影是霸王别姬,页面中可以看到的信息有电影名称,主演,上映时间,电影封面,评分,排名等。页面最...
2018-10-08 20:11:08
5878
3
原创 正则表达式之贪婪匹配与非贪婪匹配
在前面正则表达式匹配规则里,提到了 .*. :匹配除 "\n" 之外的任何单个字符。要匹配包括 '\n' 在内的任何字符,请使用像 '[.\n]' 的模式* :匹配0个或多个使用 .* 的话就可以匹配任意长度的任意字符,但是有时候在使用 .*时就可能匹配不到物品们想要的结果,例:import res='hello 1234567 world'res = re.match('...
2018-10-07 16:14:06
37370
7
原创 关于猴子选大王(约瑟夫)问题
摘至本人有道云笔记《关于猴子选大王(约瑟夫)问题》有m个猴子围成一圈,按顺时针编号,分别为1到m。现打算从中选出一个大王。经过协商,决定选大王的规则如下:从第一个开始顺时针报数,报到n的猴子出圈,紧接着从下一个又从1顺时针循环报数,...,如此下去,最后剩下来的就是大王。 看完这道题,首先想到的是列表,而且这个列表是首尾相接不断循环。针对此问题切入设置一个列表存储猴子 a=[1,1...
2018-09-30 18:33:36
3090
原创 关于散列表(字典)
摘至本人有道云笔记《关于散列表(字典)》 a={"张三":"1"}散列表的速度很块,当输入key时可以很快地返回value,这只需要很短的时间,相当于一个映射,将输入的key映射成value值。可用于很快的查找出数据。比如,将数据存入列表,将key对应的value存为对应数据列表中的下标,当输入key时,很快的得到一个下标,然后去列表中取出对应的值。散列表的操作a.get(...
2018-09-30 18:33:28
206
原创 关于二分查找
摘至本人有道云笔记《关于二分查找》 首先假设有个有序序列bb = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]1,取高位和低位的下标作为查找的范围 low heigh2,取中间的数mid作为参考点(与猜的数字n进行比较)3,如果n小于mid 那么猜的数字n在列表的低址部分4,将mid...
2018-09-29 21:07:41
143
原创 快速排序(速记)
摘至本人有道云笔记《快速排序(速记)》 1,取一个元素作为基准值2,把大于基准值的放右边,小于基准值的放左边3,在左边执行 1,2, ---递归直到列表长度小于2 ,同理 右边同样4,将子序列排序后 同基准值合并----得到有序序列修:此例始终将第一个值作为基准值,实际上这样做是没有意义的,因为这样左边的列表始终为空,导致调用栈非常长 如果将始终将中间值作为...
2018-09-29 21:02:04
388
原创 Python进程
摘至本人有道云笔记《Python进程》1.主要设计模块import os :进程的数据 getpid()获取当前进程id getppid()获取父进程id from multiprocessing improt Process : 创建进程 multiprocessing模块提供了一个Process类来代表一个进程对象 使用Proce...
2018-09-29 20:55:36
275
原创 Python中的多任务--进程和多线程
摘至本人有道云笔记《Python中的多任务--进程和多线程》1.什么是多任务--进程简单地说,就是操作系统可以同时运行多个任务。对于操作系统来说,一个任务就是一个进程。关于多任务的调度时间片调度:各个任务交替执行,任务1执行0.01秒,切换到任务2,任务2执行0.01秒,再 切换到任务3,执行0.01秒……这样反复执行下去。表面上看,每个任务都是交替执行的,但是,由于CPU的执行速...
2018-09-29 20:46:27
313
原创 Python线程,以及多线程带来的数据错乱和死锁的解决方法
摘至本人有道云笔记《Python线程》1.python多线程的创建在Python中,同样可以实现多线程,有两个标准模块thread和threading,不过我们主要使用更高级的threading模块threading模块提供的类: Thread, Lock, Rlock, Condition, [Bounded]Semaphore, Event, Timer, local。...
2018-09-29 20:34:52
16482
原创 Python--ThreadLocal
摘至本人有道云笔记《Python--ThreadLocal》1.ThreadLocal在多线程环境下,每个线程都有自己的数据。一个线程使用自己的局部变量比使用全局变量好,因为局部变量只有线程自己能看见,不会影响其他线程,而全局变量的修改必须加锁。但是局部变量也有问题,就是在函数调用的时候,传递起来很麻烦。local = threading.local()此时这个local就变成...
2018-09-29 20:01:47
2655
原创 Python--协程
摘至本人有道云笔记 《Python--协程》1.协程的定义协程,又称微线程,纤程。英文名Coroutine。首先我们得知道协程是啥?协程其实可以认为是比线程更小的执行单元。 为啥说他是一个执行单元,因为他自带CPU上下文。这样只要在合适的时机, 我们可以把一个协程 切换到另一个协程。 只要这个过程中保存或恢复 CPU上下文那么程序还是可以运行的。 2.协程和线程的差异线程...
2018-09-29 19:51:24
161
原创 关于浏览器兼容性问题
摘至本人有道云笔记 《关于浏览器兼容性问题》今天在写python--web服务器的时候遇到一个浏览器兼容问题写响应头时a='HTTP/1.1 200 OK\r\n'#响应头(协议)HTTP后面要加 / ,如不加,在谷歌浏览器可以正常识别为响应头,但是火狐浏览器却识别不了,问题虽然小,但是影响很严重,要注意 ...
2018-09-29 19:47:47
225
原创 MySQL操作,以及常用命令
MySQL操作创建数据库:create database 数据库名;操作数据库:use 数据库名;显示所有数据库:show databases;显示所有表:show tables;创建表:create table 表名(字段名1 字段属性,字段名2 字段属性,...);插入表数据:insert into 表名([字段名1,字段名2,...]) values (数据1,数据2...
2018-09-29 19:44:39
162
原创 正则表达式
1.导入re模块\d :匹配任意数字介于0-9之间,等价于[0-9]\D :匹配任意非数字,等价于[^0-9][0-9]:匹配0-9的任意一个数字[1234dasf]:原子列表,匹配列表里的任意一个字符 \w :匹配数字、字母、下划线 ,等价于[a-zA-Z0-9]\W :匹配非数字、字母、下划线 ,等价于[^a-zA-Z0-9] \s :匹配任意空白字符 \n...
2018-09-29 19:08:19
461
原创 关于html中按钮的单击事件,第一次单击可以运行,再次单击不能运行的解决方法
关于html中按钮的单击事件,第一次单击可以运行,再次单击不能运行的解决方法最近在开发的学生管理系统时,到最后遇到了一个问题:首次单击修改按钮正常执行修改ajax,显示修改信息。当保存后再次执行保存ajax,显示所有信息。但是,问题来了,当我再次点击修改按钮时控制台报错,说是onclick后面的不是一个js方法,如下图: 然后就去检查html代码,发现了一个隐藏很深的问...
2018-09-16 15:28:39
7809
原创 关于Django项目中多个app下urls.py中的url别名的问题
关于Django项目中多个app下urls.py中的url别名的问题在Django开发过程中,经常会用到路由别名(即url中的name)但在一个Django项目中通常会存在多个app也就是说会存在多个urls.py文件,而每个urls.py文件中会存在多条路由,这就难免会存在相同的别名,而在调用别名时,如果不对sessing.py文件进行设置的话,就会出现找错别名的问题,可能会找到的是别的...
2018-09-16 14:41:53
1462
原创 Django实战笔记(4) Django和Ajax、json的数据交互
最近使用Django和Ajax进行数据交互的时候出现的各种问题个人理解的Ajax,是把原本直接提交到后台的数据、表单等提交到js代码中。原本的程序流程是:使用Ajax后的程序流程:如上图,使用Ajax后,Ajax把前台和后台隔离开来,相当于一个中间平台,负责向后台传输数据以及从后台读取数据,并对页面结构进行控制。1.修改数据的 form表单<form cla...
2018-09-16 13:40:20
3794
原创 django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE, but setting
django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call...
2018-09-16 13:38:49
15678
8
原创 Django实战笔记(3)完善登录与注册
Django实现的用户登录(连接数据库版)经过前面的数据库学习以及实战(1)的基础知识,今天完成了连接数据的登录与注册功能。主要实现的功能有以下几个:登录功能 注册功能 用户登录后可以修改个人信息注:本项目多次引用了{% include 'bootcss.html' %},这是个引用bootstrap包的页面,本案例引用bootstrap使页面看起来更好看,最后会把bootcs...
2018-09-14 09:22:12
729
2
原创 Django实战笔记(2)连接MySql数据库
使用Django连接MySql数据库任何没有连接数据库的系统或网页,都是没有灵魂的。 相信学了基础的Django的读者们一定非常想要连接上自己的数据库,今天就写一下我自己连接数据库的过程以及遇到的那些坑 ( T^T )项目名–myshop app名–blog1.使用Django连接数据库首先要了解一下什么是ORM模型?ORM的作用是在关系型数据库和业务实体对象之间进行映射,这样...
2018-09-12 19:03:36
1107
1
原创 Django实现简单的用户登录
Django实现简单的用户登录(未连接数据库)最基础的模型由于本人第一次写博客,不足之处还请大家多多指教。 昨天到现在学习了Django的一些基础,如加载静态文件,url传递参数,url命名以及反向解析等,这些以后都会在博客里陆续提到。 有了以上的基础以后,今天晚上就写了一个简单的登录模型,为后续连接数据库做做准备。项目名–myshop app名–zhihu(本人随便起的)...
2018-09-11 21:33:30
5663
java连连看游戏源代码
2018-06-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人