自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

剑指苍天

我命由我不由天,此生不做信命奴

  • 博客(68)
  • 收藏
  • 关注

原创 22、关于破解滑动的验证码

以破解猪八戒网为例*https://account.zbj.com/login**获取图片验证码,包含缺口图,滑块图,完整图三个canvas标签分别对应了缺口图,滑块图和完整图。通过修改页面样式:让滑块隐藏,截取缺口图;隐藏缺口图,显示滑块图,截取滑块图;显示完整图,截取完整图。1.隐藏滑块,截取缺口图设置后效果2.隐藏缺口图,显示滑块图,截取滑块图隐藏缺口图下滑右侧栏可以看到对滑块的设置3.显示完整图,截取完整图。选择第三个canvas代码更改元素样式,获取图片

2021-02-28 15:06:31 293

原创 21、关于破解点触的验证码

点触验证码是一种常见的反爬手段解决方案有两种:一种是直接解决,这需要深度学习机器学习等图像处理技术,以大量的数据训练识别模型,最终达到模型足矣识别图片中的文字提示和应该点击的区域之间的对应关系。这需要非常专业的设备,比如TPU运算,和专业的开发和维护人员。因此市面上有专业解决此类问题的OCR解决提供商。也就是第二种间接解决的方案,调用第三方接口。超级鹰的使用https://www.chaojiying.com/超级鹰验证码识别平台注册超级鹰账号密码在个人中心注册一个软件,相当于做开发

2021-02-28 15:04:06 767 1

原创 20、关于破解字符的验证码

验证码(CAPTCHA)是“Completely Automated Public Turing test to tell Computers and Humans Apart”(全自动区分计算机和人类的图灵测试)的缩写。是一种用来区分用户是计算机还是人的公共全自动程序作用认证码是一种人机识别手段,最终目的是区分正常用户和机器的操作。可以防止:恶意破解密码、注册、刷票、论坛灌水,防止黑客对用户的密码进行暴力破解。一般是提出一个问题,这个问题可以由计算机生成并评判,但是必须只有人类才能解答。由于计算

2021-02-28 15:02:37 423

原创 19、selenium

Selenium 是一个web自动化工具作用自动化测试通过它,我们可以写出自动化程序,模拟浏览器里操作web界面。 比如点击界面按钮,在文本框中输入文字 等操作。获取信息而且还能从web界面获取信息。 比如招聘网站职位信息,财经网站股票价格信息 等等,然后用程序进行分析处理。运行环境Selenium测试直接运行在浏览器中,就好像一个真正的用户在操作一样, 支持大部分主流的浏览器,包括IE(7,8,9,10,11),Firefox,Safari,Chrome,Opera等。我们可以利用它来

2021-02-28 15:00:18 306 2

原创 18、JS渗透(三)

js项目分析:​ 1、为了查找参数​ 2、为了查找动态加载的隐藏内容js加密:通过js加密给服务器的是限制机器人,通过js加密给客户端的是防盗保护。前者分析是把参数加密然后用机器人发送达到伪装的目的,后者通过解密客户端发来的js代码,获取资源来达到解密目的。实质是一个加密来伪装自己和一个破解密码的不同原理。js动态加载:有些内容不是加密,但是需要javascript代码通过用户操作,通过二次的交互加载出来的,这种情况如果是在初始页面的基础上交互的话,网页源码是不会变化的,机器人爬取的时候就不会得

2021-02-28 14:57:59 992

原创 1、pandas实战

房天下案例:​ 一、读取数据 ftx.xls​ 一般读取信息,读取head()函数的信息就行了​​ 二、加载房天下数据集,提取时间为2009年的数据,使用分组函数,计算上海和沈阳的地区的销售平均值​ 这里是要选出2009、上海和沈阳的关键字的数据,所以要先进行筛选,可以先查看显示某种信息的数据,然后再通过赋值来保存出来,再进行统计处理​ 先查找2009年信息:​ df_2009=df[df[‘年’]==2009],这里的是双等号,这里面要放的是检验符合的数据对象,而不是数

2021-02-28 14:52:46 224

原创 5、数据分析pandas

数据模型是数学公式,算法是计算通过模型进行的操作步骤,优质的数据能提高算法的质量,数据结构是数据的存储方式。pandas中的数据类型:​ series:在人工智能中代表特征​ 数据结构实质为一行数据(在数据帧中看起来像是某一行的数据,但是在系列处理的时候,会以列进行处理,在数据帧中以行进行处理),其参数index是唯一的,与散列一样,不设置时以范围来按np.arange(n)中的顺序进行n次逐一传递,pd.Series(np.arange(10))这里是把numpy数组传入,只设置了data。

2021-02-28 11:53:56 132

原创 python pandas中inplace分析

pandas中很多函数都有inplace参数,他们都作是否修改传入数据的意思,为True时就是修改。但inplace还封装了一个作用,就是复制,在赋值的时候,其实赋值就是一种复制,inplace为True的时候,不进行复制操作。inplace还有一个意义就是原对象不迁移,属于不将映射转到其他变量或对象上。但为false的时候可以复制,赋值到的那个对象保留了原对象执行函数的一种映射,但不会改变原对象。所以这种方式就是为了保留原来数据的一种便捷方式,不用多次赋值来避免原来的对象改变又能得到一个长期的映射。in

2021-02-28 08:56:20 1711

原创 4、数据分析numpy

底层算法核心在于数学公式,这些公式构成的库搭载于Numpy向量为一维数组,矩阵为二维数组, 二维数组就是数组的数组【【1,2,3】,【1,2,3】】还是矩阵,这里的dtype的元素类型是整数型,指的是里面的数值而不是矩阵的局部体e+1为10的1次方数组的type:类型是numpy.ndarray(其中ndarray表示n维的数组)创建最常规数组:np.array创建一个指定形状(shape)、数据类型(dtype)且未初始化的数组:np.empty(未初始化的数组就是定义了没有赋值)创建指定大

2021-02-28 08:32:36 112 1

原创 3、数据分析概率论

概率属于分类算法的一个基础:随机试验就是一个事件。P(A·B),中间的点乘一般是不省略的,以表示是两个事件,而不是事件AB(一个事件)。P(A·B)表示事件A与事件B同时发生的概率,之所以用这种记法,是因为研究事件A与事件B同时发生的情况时,最常遇见的情形是A与B无关或相互独立(必须相互独立才能进行相乘),此种情形下有P(A·B)=P(A)·P(B),可以看出这种记法很简洁、易记。P(AB)就是A事件和B事件同时发生的概率,等于A事件和B事件发生概率的乘积。P(A∣B)是条件概率公式,P(A|B) =

2021-02-28 08:31:59 860

原创 2、数据分析线代篇

有监督的回归的一个基础:单位矩阵:乘任何矩阵都是其任何矩阵本身。阶梯矩阵:主对角线的一边所有向量全为零,从而其行列式为主对角线所有向量相乘齐次线性方程组:常数项是右边那个0,其他带x的都不是常数项矩阵和矩阵的乘法:一列的一个数只能乘一行的一个数Am×nx=0只有零解 <=> r(A)=n • 特别地,A是n×n时,则Am×nx=0只有零解 <=> |A|≠0 • Am×nx=0有非零解 <=> r(A) |A|=0 • 若m有没有零解指的是x的向量是不是都等0

2021-02-27 12:48:54 485

原创 1、数据分析高数篇

有监督学习:有标签无监督学习:无标签一、• 线性回归 :• 通过已有的数据,进行新数据结果的预测(有监督学习方式处理)对连续型变量做预测叫回归,对离散型变量做预测叫分类比如有关于天气的变量:晴,阴,雨。只能是其中单独一个,不存在介于两种之间的,即不能又晴又雨。连续的变量是指取值可以是连续的变量。比如身高,体重等。可以在某个区间内取任意值都可以二、• 朴素贝叶斯算法(概率论的算法) :• 通过先验概率,去对后验概率进行计算(有监督学习方式处理)三、• K-Means算法 :• 计算所有样本点到质心

2021-02-27 12:47:42 456

原创 17、JS渗透(二)

咪咕登录特点:1.查看有些网站的数据,需要登录状态2.登录状态通过cookie保持操作:1.得到cookie需要账号密码以及其他参数,通过post请求与后端交互2.网站后台为防止爬虫,可能会检验HTTP请求提交过来的参数3.爬虫登录可以通过手动保存cookie,每次请求时带上cookie;缺点是容易过期,小任务爬虫可手动保存cookie4.长期任务,最好模拟登录所需的参数和多次请求,得到cookie参数构造流程​ 这种提交数据得到响应的的请求,往往参数比较麻烦,所以参数的构造是得到完整

2021-02-27 12:43:59 566

原创 16、JS渗透(一)

(渗透过程:了解js代码的过程)一般网站的请求不愿意让机器去发送请求的,所以会设置一些难以获取的参数。通过js代码分析就可以得到请求的参数然后就可以用机器发送请求js逆向:了解js代码后,用python进行实现。(通过分析js动态加载,把js加载的代码还原出来利用,逆向的过程主要体现在逆向分析它js动态加载的源码,和黑客的逆向工程理念类似)js动态:有算法的,给一个内容就会做出反馈的。一些功能处理都是需要通过js来处理的。Chrome调试面板常用面板[外链图片转存失败,源站可能有防盗链机制,建

2021-02-27 12:38:43 1595

原创 15、js加密解密

一.概念和作用概念加密解密:一个信息干扰的过程,保证固定的人才可以看到你的信息把重要的数据变为乱码(加密)传送,到达目的地后再用相同或不同的手段还原(解密)作用网络信息传输安全涉及到很多个方面,其中主要有三个要解决的问题:保密性(Confidentiality):信息在传输时不被泄露完整性(Integrity):信息在传输时不被篡改有效性(Availability):信息的使用者是合法的常用加密方式数据加密方式描述主要解决的问题常用算法对称加密指数据加密

2021-02-27 12:34:34 618

原创 14、pyspider框架

一、pyspider框架介绍1.简介pyspider 是个强大的由python实现的爬虫系统。纯python的强大的webui,支持脚本编辑,任务监控,项目管理和结果查看数据后台支持,MySQL,MongoDB,Reids,SQLite,Elasticsearch,PostgreSQL和SQLAlchemy消息队列支持,RabbitMQ,Beanstalk,Redis以及Kombu支持任务优先级,定时,失败重试等调度方案分布式架构,抓取js页面支持Python2和32.安装‘pip

2021-02-27 12:32:42 482

原创 13、fiddler抓包工具

一、HTTP代理(用户代理(User Agent)是用来表明浏览用户的身份,HTTP代理是代理客户机的http访问)所谓的http代理,其实就是代理客户机的http访问,主要代理浏览器访问页面(替浏览器去访问服务器)。代理服务器是介于浏览器和web服务器之间的一台服务器,有了它之后,浏览器不是直接到Web服务器去取回网页而是向代理服务器发出请求,Request信号会先送到代理服务器,由代理服务器来取回浏览器所需要的信息并传送给你的浏览器。代理虽然替客户端访问服务器,客服端的经过了代理,信息都会被它拿到

2021-02-27 12:29:32 375

原创 12、分布式爬虫(二)

一、分布式项目演示(二)(上次演示的是spider类,这次要用的是crawlspider类)先通过一般的管道,最后才传到redis,所以redis的优先级比一般管道低在mysql用truncate table清理表数据,可以避免数据录入从原来数据尾部接着写入,在查询中写入truncate TABLE 加表 名scrapy_reidis 爬虫文件更改:这里要用crawlspider所以继承rediscrawlspider类,from scrapy_redis.spiders import RedisS

2021-02-27 12:28:50 143

原创 11、分布式爬虫(一)

一、分布式概念和作用比如爬100本小说,分配后每个服务器只爬一部分小说分布式:一个业务分拆多个子业务,部署在不同的服务器上;是一种将任务分布在不同地方的工作方式作用:提高安全性(被抓了也只是单个被抓,不会全部中断)和效率(多个服务器爬取速度倍增)除了在爬虫上运用,网站的访问运用到分布式最多,比如在单个服务器得到多个用户的需求后,分配给多个服务器进行完成,减少工作量二、scrapy_redisredis 的安装与使用:1.redis(支持分布式的数据库) 下载地址https://github

2021-02-27 12:27:57 199 1

原创 10、scrapy框架(六)

一、spider类(基础类)下载图片不需要allowed_domains限制,就可以删去用不用管道都可以,管道的open和close不影响二、ImagesPipeline类(媒体管道类,还能下载音频视频等)下载图片图片、音频、视频等都是二进制数据把获取媒体数据的代码封装到媒体管道类中导入from scrapy.pipelines.images import ImagesPipeline然后class Bdimgpipeline(ImagesPipeline):用一个类来继承媒体管道类

2021-02-27 12:26:40 101 1

原创 9、scrapy框架(五)

一、下载中间件(第四和第五步,引擎和下载器中间的组件,经过他的都可以用来修改)scrapy settings --get DOWNLOADER_MIDDLEWARES_BASE可以查看系统自定义的中间件,得到多个下载中间件的类,他们都有自己独特的功能数值越小越靠近引擎,越大越靠近下载器,下载器返回的数据先通过最大再到最小的数值可以理解为request是顺着小到大,response是顺着大到小,在自定义设置中间件后引入使用时设置数值要注意基础中间件的数值是否会有覆盖所引入的中间件的可能。自定义的中间件

2021-02-26 10:24:26 94

原创 8、scrapy框架(四)

Request类是scrapy模块中request请求的基类,request请求类中还有FormRequest类,继承了Request类并进行了扩充一、RequestScrapy.http.Request:Scrapy.http.Request类是scrapy框架中request的基类。它的参数如下:url(字符串) - 此请求的URL,发起请求的URLcallback(callable)- 回调函数method(string) - 此请求的HTTP方法。默认为’GET’。meta(dict)

2021-02-26 10:23:36 150

原创 7、scrapy框架(三)

一、CrawlSpider类(有rule功能可以不用层层解析)重新创建爬虫文件,不用默认爬虫类模板,用crawlspider类模板创建好爬虫文件后,输入scrapy genspider -l(进入模板列表)然后选择换用其他模板,默认是basic,这里要换成scrapy genspider -t(选择使用的模板) crawl name(随便起的名字) 域名创建好后,文件里会自动导入rule和LinkExtractor对象Rule(定义三种规则:1、如何爬取url(LinkExtrac

2021-02-26 10:22:46 154

原创 6、scrapy框架(二)

一、次级页面获取及数据传递拼接:(之前都是抓取一级页面)次级页面和一级页面不在一个页面上,次级页面是在一级页面跳过超链接进入的另一个页面数据不存储在本地,用管道进行存储到达次级页面网页的连接,可以从一级页面的源代码中寻找次级页面的电影详情不能再通过一级页面解析方法进行解析了callback="self.get_detail"重设解析方法每个次级页面详情所在标签位置都不一样,把拥有相同父标签的路径改成//全局搜索,并且是要span的准确属性@property=”v:summary“设立多个解析方法

2021-02-26 10:21:56 139

原创 5、scrapy框架使用(一)

Scrapy框架:(与前面所学的相比,scrapy框架应用更加广泛)简介:(纯python开发的,不含其他语言,改动源码用python语言即可)Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试 Scrapy使用了Twisted 异步(未等请求处理完,就会利用好时间处理其他事)网络库来处理网络通讯。使用原因:1.为了更利于我们将精力集中在请求与解析上(一般处理反爬问题消耗不少精力,用scrapy能解决不小这类问题)2.企业

2021-02-26 10:21:09 242

原创 4、网页解析工具

网页解析(提取数据)工具:BeautifulSoup是一个库(使用前还要先生成BeautifulSoup对象),XPath是一个语言一、BeautifulSoupfrom bs4 import BeautifulSoup打开html文件,然后可以在终端进行import的导包,以及各种方法操作BeautifulSoup 是一个可以从‘ HTML ’或’ XML ’ 文件中提取数据的Python库,它的使用方式相对于正则来说更加的简单方便使用BeautifulSoup解析一段网页代码,能够得

2021-02-26 10:20:13 1995

原创 3、requests库理解

REquesets库:(比其他http库更简单)一、简介:把get等方法写成接口直接调用,有基本完全满足web请求的所有需求,二、发起请求每一个请求方法都有一个对应的API,比如GET请求就可以使用get()方法post()方法,将需要提交的数据传递给data参数即可,POST请求发送form表单数据通过data,发送json数据通过json参数,json和data不可以同时添加,同时添加会造成json中没有数据发送数据的json方法是不会形成一个表单的,data方法只会形成表单不形成json

2021-02-26 10:19:18 265

原创 2、urllib库与urllib3库的理解

一、urllib库(内置官方标准库,built-in),python3中整合了1和2代1、urllib.request请求模块(爬虫进行伪装的核心部分)构造网络请求,可以添加Headers,proxy等(1)发起简单的网络请求:urlopen方法:urllib.request.urlopen(url(必须有), data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None)url:可以是字符串也可以

2021-02-26 10:16:50 559

原创 1、爬虫概念

一、概念自动批量下载网络资源的程序(伪装成客户端与服务端进行数据交互的程序,客户端是与服务端对应的,网上的浏览器就属于伪装客户端)作用:1、数据收集:用于做数据采集的爬虫,叫”聚焦爬虫“,比如某app、网页或软件面向大众收集的数据2、搜索引擎:比聚焦爬虫收集的范围更广,比如百度,通过搜索关键字将大量页面的信息爬取下来,放到自己的服务器上,需要对页面进行存储和定位3、模拟操作:伪装成客户端,广泛用于模拟用户操作,比如测试机器人,灌水机器人等,都是通过同一个ip地址发出的请求进行伪装客户端操作(后台封

2021-02-26 10:16:28 1231

原创 15、网页雏形5

</head><body> <form> 用户名:<input type="text" placeholder="请输入用户名" /><br /><br /> 密&emsp;码:<input type="password" placeholder="请输入密码"><br /><br /> 性&emsp;别:男<input type="radio...

2021-02-25 08:46:53 384

原创 14、网页雏形4

</p> <script> //获取元素 var sp11=document.getElementsByClassName("sp1"); var sp22=document.getElementsByClassName("sp2"); var p1=document.getElementsByTagN...

2021-02-25 08:45:42 98

原创 13、网页雏形3

属 性: 属性值: 设置 </div> <script> //获取元素 var input1=document.getElementsByTagName("input"); var btn=document.getElementById("btn1"); var box=document.getElementsByTagName("div")[0]; //鼠标划入事件 box.onmouseente...

2021-02-25 08:44:45 81

原创 12、网页雏形2

2021-02-25 08:43:32 93

原创 11、网页雏形1

请注册 立即注册>

2021-02-25 08:42:47 102

原创 10.简单网页编写

(清除默认网页修饰)要测量div大小可以多使用截图来看旁边的像素数字标签不跳转链接为先想出结构,再思考进行填充演练去标签的类或ID的名字时要对号入座便于回忆,否则容易忘记头部区域:让div中的所有li标签中导航项目一行浮动排列显示为.header.nav(先输入选择器) ul li{float:left ;padding:0 40px(使文字撑开局部div)}给项目行的a标签去除下滑线 .nav ul li a{text-decoration:none(清除下划线); color:whi

2021-02-25 08:40:46 268

原创 9.Ajax

前端提供用户选择,输入,一般用表单收集数据后端(服务器)采集前端的收集数据处理好后才会给数据库后端(由业务代码组成)是前端与数据库的一个中介,连接数据库同时判断前端的内容是否能被录入到数据库前端:用html、css、js语言写后端:用python、java、php语言写数据库:用sql语言写django框架:可以在后端直接套用已经写好的进行改善或者重新开发前后端交互:前端写好的语言用js对象封装,需要通过json转成数组才能解析给后端的语言进行解读json(js的对象表达式,主要用于数据的

2021-02-25 08:39:57 75

原创 8.JQuery(二)

给id为box的div添加类,点击后执行函数,然后函数内容为添加fontsize30(类名)从而执行多一个类名的操作$("#addclass").click(function(){$("#box").addclass(“fontsize30”)})还有移除的方法,removeClass(不接上类名,会把所有类名都移除)判断元素是否有该类名,用hasClass,如果有的话返回ture,否则false切换,toggleClass,如果元素有某个class,就移除掉,没有就加上selected 属性

2021-02-25 08:39:12 99

原创 7.JQuery(一)

jq是JS库,对象获取和对象定义(这里是整个库的范畴不是JS中数据类型那种对象,)DOM对象是我们用传统的方法(javascript)获得的对象,jQuery对象就是用jQuery的类库选择器获得的对象。JQuery对象就是通过jQuery包装DOM对象后产生的对象。JQ优势在于,单纯用JS代码写要写很多句代码,用JQ的话用一句就行,比如KaTeX parse error: Expected 'EOF', got '#' at position 2: (#̲id名)就可以使用id操作,不…(funct

2021-02-25 08:38:39 224

原创 6.JS基础(三)

简单事件案例1:鼠标移动时,在input文本框中显示鼠标位置(坐标)onmousemove:鼠标移动时被触发document.οnmοusemοve=function(){函数体(移动后要进行的事情)}事件对象(function的形参):当事件的响应函数被触发时,浏览器每次都会将一个事件对象作为实参传入响应函数(function(){},又叫回调函数)document.οnmοusemοve=function(形参(接收参数时要设置)){函数体(移动后要进行的事情)}这里执行的鼠标移动后每次的m

2021-02-25 08:37:56 157

原创 5.JS基础(二)

引用数据类型(对象):为了弥补基本数据类型的不足,可以让不一样的数据类型之间产生关系,所以要把他们变成一个整体(对象)一、内置对象1、function函数对象2、数组对象3、Date日期对象Function创建,(包含的内置属性:length:函数形参列表个数,调用:alert(对象,length))1、var fun=new Function(形参,函数体)var fun=new Function(”a“,”b“,alert(a))该函数指显示a,所以传入了b也不会显示,用形参和函数体括号分

2021-02-24 11:57:09 483

空空如也

空空如也

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

TA关注的人

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