![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Python
文章平均质量分 76
流夏_
去追随那些使你安宁的东西
展开
-
爬虫逆向——某建筑市场监管平台的滑块验证码分析
滑块验证码图像中两个灰度不同的相邻区域的交界处,必然存在灰度的快速过渡或称为跳变,它们与图像中各区域边缘的位置相对应,边缘蕴含了丰富的内在信息,如方向、阶跃性质、形状等,沿边缘走向的像素变化平缓,而垂直于边缘方向的像素变化剧烈。即最小的坐标x就是验证码接口中的 moveX参数。1、首先看验证码样式,可以看到是个滑块验证,包含一张带缺口的背景大图和一张用于拖动的小图,这类图片处理起来就比较简单。重点看一下响应预览,返回数据是一个列表,观察可知0、1元素分别是小图和大图的bs64编码,2、3元素用处下面会用到。原创 2023-05-11 18:25:01 · 1647 阅读 · 1 评论 -
JS逆向——裁判文书网(详细图文步骤)
登录状态验证 写在前面:本篇博客很长,都是手把手一步一步的教程,跟着做就能出结果,文章总共分为以下三部分,我也会在3个部分中详细的说明步骤(1)接口请求头参数验证(2)接口响应数据DES3加密(3)登录状态验证一、接口请求头参数验证1、以“民事案件”专栏为例,切换到“民事案件”专栏,点击翻页,观察控制台中的网络请求,rest.q4w结尾的接口及为数据接口。2、点击打开请求详情,观察请求和响应3、请求中数据校验主要是。原创 2023-01-30 10:55:45 · 3733 阅读 · 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 · 1379 阅读 · 0 评论 -
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 · 4934 阅读 · 2 评论 -
关于scrapy框架中遇到需要登录时的解决办法
最近在工作中频繁遇到需要登录后才能抓取的数据,但也不是没有解决办法,以往解决办法如下:A. 现在浏览器里登录,然后把登录后的cookie粘贴到代码中去请求,这样就相当与利用cookie"伪造"了一个分身,从而跳过登录验证。这样往往可以解决大部分需求,但是遇到需要crontab定时爬取就显得鸡肋。cookies是有生存时间的,一旦cookies死掉那么服务器上正在跑的代码也会崩溃掉,如果还...原创 2019-01-24 18:16:32 · 2078 阅读 · 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 · 22626 阅读 · 0 评论 -
scrapy-redis 更改队列和分布式爬虫
为初学者方便对分布式爬虫的学习,总结了一下自己的理解和网上的知识点初学者的几个疑问点:1.什么是分布式爬虫?请参考:https://blog.csdn.net/zhusongziye/article/details/804574872.分布式爬虫需要掌握哪些技能?scrapy-redis原理3.scrapy-redis是干吗用的?记分布式爬虫关键点:(1)scrap...转载 2019-02-24 15:40:05 · 1741 阅读 · 0 评论 -
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 · 24155 阅读 · 2 评论 -
关于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 · 4338 阅读 · 4 评论 -
详谈Python的高级特性、函数式编程、高阶函数
1、什么是Python的高级特性?这个问题对于许多正在学习Python的小伙伴来说可能会很疑惑?很多人知道这个名词,但不知道这玩意到底是什么。其实,Python作为一门高级语言它有许多的内置函数,运用这些函数可以很方便的完成一些功能,而这些特性,笼统的可称为Python的高级特性。简单地说Python的高级特性就是一些Python函数的高级用法。(1)集合的推导式 列表推导式,使用一...原创 2018-11-06 10:08:21 · 293 阅读 · 0 评论 -
Python爬虫笔记————抓取 猫眼电影排行榜Top100
注:初学爬虫,本节仅使用requests库和使用正则作为解析工具 最近学习爬虫,找个比较简单的网页练习了一下,作为初入爬虫的小白,不足之处还请大家多多指教。一、分析url首先,打开目标站点https://maoyan.com/board/4,打开之后便看到榜单信息: 排名第一的电影是霸王别姬,页面中可以看到的信息有电影名称,主演,上映时间,电影封面,评分,排名等。页面最...原创 2018-10-08 20:11:08 · 5837 阅读 · 3 评论 -
Python--ThreadLocal
摘至本人有道云笔记《Python--ThreadLocal》1.ThreadLocal在多线程环境下,每个线程都有自己的数据。一个线程使用自己的局部变量比使用全局变量好,因为局部变量只有线程自己能看见,不会影响其他线程,而全局变量的修改必须加锁。但是局部变量也有问题,就是在函数调用的时候,传递起来很麻烦。local = threading.local()此时这个local就变成...原创 2018-09-29 20:01:47 · 2584 阅读 · 0 评论 -
Python线程,以及多线程带来的数据错乱和死锁的解决方法
摘至本人有道云笔记《Python线程》1.python多线程的创建在Python中,同样可以实现多线程,有两个标准模块thread和threading,不过我们主要使用更高级的threading模块threading模块提供的类: Thread, Lock, Rlock, Condition, [Bounded]Semaphore, Event, Timer, local。...原创 2018-09-29 20:34:52 · 16391 阅读 · 0 评论 -
Python中的多任务--进程和多线程
摘至本人有道云笔记《Python中的多任务--进程和多线程》1.什么是多任务--进程简单地说,就是操作系统可以同时运行多个任务。对于操作系统来说,一个任务就是一个进程。关于多任务的调度时间片调度:各个任务交替执行,任务1执行0.01秒,切换到任务2,任务2执行0.01秒,再 切换到任务3,执行0.01秒……这样反复执行下去。表面上看,每个任务都是交替执行的,但是,由于CPU的执行速...原创 2018-09-29 20:46:27 · 294 阅读 · 0 评论 -
Python进程
摘至本人有道云笔记《Python进程》1.主要设计模块import os :进程的数据 getpid()获取当前进程id getppid()获取父进程id from multiprocessing improt Process : 创建进程 multiprocessing模块提供了一个Process类来代表一个进程对象 使用Proce...原创 2018-09-29 20:55:36 · 268 阅读 · 0 评论 -
快速排序(速记)
摘至本人有道云笔记《快速排序(速记)》 1,取一个元素作为基准值2,把大于基准值的放右边,小于基准值的放左边3,在左边执行 1,2, ---递归直到列表长度小于2 ,同理 右边同样4,将子序列排序后 同基准值合并----得到有序序列修:此例始终将第一个值作为基准值,实际上这样做是没有意义的,因为这样左边的列表始终为空,导致调用栈非常长 如果将始终将中间值作为...原创 2018-09-29 21:02:04 · 373 阅读 · 0 评论 -
关于二分查找
摘至本人有道云笔记《关于二分查找》 首先假设有个有序序列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 · 137 阅读 · 0 评论 -
关于散列表(字典)
摘至本人有道云笔记《关于散列表(字典)》 a={"张三":"1"}散列表的速度很块,当输入key时可以很快地返回value,这只需要很短的时间,相当于一个映射,将输入的key映射成value值。可用于很快的查找出数据。比如,将数据存入列表,将key对应的value存为对应数据列表中的下标,当输入key时,很快的得到一个下标,然后去列表中取出对应的值。散列表的操作a.get(...原创 2018-09-30 18:33:28 · 197 阅读 · 0 评论 -
关于猴子选大王(约瑟夫)问题
摘至本人有道云笔记《关于猴子选大王(约瑟夫)问题》有m个猴子围成一圈,按顺时针编号,分别为1到m。现打算从中选出一个大王。经过协商,决定选大王的规则如下:从第一个开始顺时针报数,报到n的猴子出圈,紧接着从下一个又从1顺时针循环报数,...,如此下去,最后剩下来的就是大王。 看完这道题,首先想到的是列表,而且这个列表是首尾相接不断循环。针对此问题切入设置一个列表存储猴子 a=[1,1...原创 2018-09-30 18:33:36 · 3079 阅读 · 0 评论 -
Python--协程
摘至本人有道云笔记 《Python--协程》1.协程的定义协程,又称微线程,纤程。英文名Coroutine。首先我们得知道协程是啥?协程其实可以认为是比线程更小的执行单元。 为啥说他是一个执行单元,因为他自带CPU上下文。这样只要在合适的时机, 我们可以把一个协程 切换到另一个协程。 只要这个过程中保存或恢复 CPU上下文那么程序还是可以运行的。 2.协程和线程的差异线程...原创 2018-09-29 19:51:24 · 155 阅读 · 0 评论