单点登录配合拦截器使用案例

1.定义拦截器://定义用户拦截器publicclassUserInterceptorimplementsHandlerInterceptor{@AutowiredprivateJedisClusterjedisCluster;privateObjectMapperobjectMapper=newObjectMapper();/***1.获取用户Cookie获取token数据*2.判断token中是否有数据*false表示没有登陆,则重定向到用户登陆页面**true:表示用户之前登陆过*从redis中根据token获取userJSON,*再次判断数据是否有数据**false:没有数据,则重定向到用户登陆页面*true:表示有数据,则程序予以放行.*/@OverridepublicbooleanpreHandle(HttpServletRequestrequest,HttpServletResponseresponse,Objecthandler)throwsException{//1.获取Cookiez中的tokenStringtoken=null;Cookie[]cookies=re...

redis入门案例

<!--jedis--><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>${jedis.version}</version></dependency><!--添加spring-datajar包--><dependency><groupId>org.springframework.data</groupId><artifactId>spring-data-redis</artifactId><version>1.4.1.RELEASE</version></dependency>//测试字符串IP:6379@TestpublicvoidtestString(){Jedisjedis=newJedis("192.168.126.166",6379);jedis....
代码星球 代码星球·2020-04-02

VC运行库版本不同导致链接.LIB静态库时发生重复定义问题的一个案例分析和总结

MSDN中对于在不同的配置下Link的LIB作了说明:CRuntimeLibrary: 开关对应的库版本/MDMSVCRT.LIB多线程DLL的Release版本/MDdMSVCRTD.LIB多线程DLL的Debug版本/MTLIBCMT.LIB多线程静态链接的Release版本/MTdLIBCMTD.LIB多线程静态链接的Debug版本/clrMSVCMRT.LIB托管代码和非托管代码混合/clr:pureMSVCURT.LIB纯托管代码  C++StandardLibrary: 开关对应的库版本/MDMSVCPRT.LIB多线程DLL的Release版本/MDdMSVCPRTD.LIB多线程DLL的Debug版本/MTLIBCPMT.LIB多线程静态链接的Release版本/MTdLIBCPMTD.LIB多线程静态链接的Debug版本  编译器会自动根据编译选项,选择对应的LIB文件。一般情况下这不会出现问题。然而,在部分情况下,一旦你的程序的各个部分(LIB,OBJ…)并非由相同的编译选项编译出,而Link...

融云项目案例开发教程

先来理下思路,对比前面的几个教程,我们时这样实现的,在消息列表页我们连接一次融云,打开会话页面后又加载了一次融云,这样打开会话页面后就会导致消息列表页的监听事件取消,同时还会存在一些位置的bug,导致了开发难度。我们这次改变下思路,把所有的融云类的处理全部放在消息列表页,然后通过APICloud的api.sendEvent和api.addEventListener来处理融云的一些事件。记住除了消息列表页其他页面不要做融云的任何链接处理。 消息列表页实现代码<script>/*rong全局*/varrong;/*获取会话消息列表*/functioncoversationList(){//消息列表rong.getConversationList(function(ret,err){if(ret.status=='success'){alert(JSON.stringify(ret.result));}})}/**监听新消息*当有新消息传来时,利用sendEvent发出一个事件,同时传递消息内容,可以在会话页面进行一次监听接收*/functionreceiveMessa...

如何更有效使用 Rational AppScan 扫描大型网站,第 2 部分: 案例分析

针对大型网站的扫描,我们按照戴明环PDCA的方法论来进行规划和讨论,建议AppScan使用步骤:计划(Plan)、执行(Do)、检查(check)、分析(AnalysisandAction)。在计划阶段:明确目的,进行策略性的选择和任务分解。明确目的:选择合适的扫描策略了解对象:首先进行探索,了解网站结构和规模确定策略:进行对应的配置按照目录进行扫描任务的分解按照扫描策略进行扫描任务的分解执行阶段:一边扫描一遍观察进行扫描先爬后扫(继续仅测试)检查阶段(Check)检查和调整配置结果分析(Analysis)对比结果汇总结果(整合和过滤)下面我们针对每个阶段,进行具体的阐述。AppScan安装环境要求和检查为了保证更好的扫描效果,安装AppScan的硬件建议配置如下:表1.RationalAppScan安装配置要求硬件最低需求处理器PentiumP4,2.4GHz内存2GBRAM磁盘空间30GB网络1NIC100Mbps(具有已配置的TCP/IP的网络通信)其中,处理器和内存建议越大越好,而磁盘空间,建议系统盘(一般是C盘)磁盘空间至少保留10G,如果系统盘磁盘空间比较少,可以考虑把用户...

爬虫学习

#coding:utf8__author__='wang'importurllib2importcookieliburl="http://www.baidu.com";response=urllib2.urlopen(url)print(len(response.read()));request=urllib2.Request(url)request.add_header('user-agent','Mozilla/5.0')response1=urllib2.urlopen(request)printlen(response1.read())cj=cookielib.CookieJar()opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))urllib2.install_opener(opener)response2=urllib2.urlopen(url)printcjprintlen(response2.read()) ...
代码星球 代码星球·2020-04-02

爬虫

爬取昵图网图片并保存#-*-coding:utf-8-*-importreimporturllibdefgetHtml(url):page=urllib.urlopen(url)html=page.read()returnhtmldefgetImg(html,p):reg=r'<imgsrc="(.+.jpg)"'imgre=re.compile(reg)imglist=re.findall(imgre,html)x=0;forimgurlinimglist:y=str(p)+'-'+str(x);urllib.urlretrieve(imgurl,'./images/%s.jpg'%y)x+=1foriinrange(19,60+1):url="http://www.nipic.com/zhuanti/817811_"+str(i)+".html"printurlhtml=getHtml(url)printgetImg(html,p=i) ...
代码星球 代码星球·2020-04-02

python爬虫

importreimporturllibdefgetHtml(url):page=urllib.urlopen(url)html=page.read()returnhtmldefgetImg(html):reg=r'height="d{3,}"src="(.+?.jpg)"'imgre=re.compile(reg)imglist=re.findall(imgre,html)x=0forimgurlinimglist:urllib.urlretrieve(imgurl,'%s.jpg'%x)x+=1html=getHtml("http://tieba.baidu.com/p/4668255626")printgetImg(html)    在我们日常上网浏览网页的时候,经常会看到一些好看的图片,我们就希望把这些图片保存下载,或者用户用来做桌面壁纸,或者用来做设计的素材。  我们最常规的做法就是通过鼠标右键,选择另存为。但有些图片鼠标右键的时候并没有另存为选项,还有办法就通过就是通过截图工具截取下来,但这样就降低图片的清晰度。好吧~!其实你很厉害的,右键查看页面源代码...
代码星球 代码星球·2020-04-02

php爬虫 phpspider

<?php/***CreatedbyPhpStorm.*User:brady*Date:2016/12/9*Time:17:32*/ini_set("memory_limit","1024M");requiredirname(__FILE__).'/../core/init.php';$url="http://www.epooll.com/archives/806/";$html=requests::get($url);//抽取文章标题$selector="//*[@id="content"]/div[1]/div[1]/h1/a";$title=selector::select($html,$selector);//检查是否抽取到标题//抽取文章作者$selector="//*[@id="content"]/div[1]/div[1]/h6/span[1]";$author=selector::select($html,$selector);//检查是否抽取到作者//去掉作者:$author=str_replace("作者:","",$author);//发布时间$select...
代码星球 代码星球·2020-04-02

Python爬虫:Xpath语法笔记

 一、选取节点常用的路劲表达式:表达式描述实例 nodename选取nodename节点的所有子节点xpath(‘//div’)选取了div节点的所有子节点/从根节点选取xpath(‘/div’)从根节点上选取div节点//选取所有的当前节点,不考虑他们的位置xpath(‘//div’)选取所有的div节点.选取当前节点xpath(‘./div’)选取当前节点下的div节点..选取当前节点的父节点xpath(‘..’)回到上一个节点@选取属性xpath(’//@calss’)选取所有的class属性二、谓语谓语被嵌在方括号内,用来查找某个特定的节点或包含某个制定的值的节点实例: 表达式结果xpath(‘/body/div[1]’)选取body下的第一个div节点xpath(‘/body/div[last()]’)选取body下最后一个div节点xpath(&lsquo...

图片爬虫

#-*-coding:utf-8-*-importreimporturllibimportos.pathdefgetHtml(url):page=urllib.urlopen(url)html=page.read()returnhtmldefgetImg(html,p):reg=r'<imgsrc="(http://img.7160.com.+.jpg)"'imgre=re.compile(reg)imglist=re.findall(imgre,html)x=0;forimgurlinimglist:printos.path.basename(imgurl)y=str(p)+'-'+str(x);urllib.urlretrieve(imgurl,'./images/%s.jpg'%y)x+=1printy+".jpg"foriinrange(2,36+1):url="http://www.7160.com/meinv/38343/index_"+str(i)+".html"printurlhtml=getHtml(url)printgetImg(html,p=i) ...
代码星球 代码星球·2020-04-02

我是一个爬虫

原创: 刘欣 码农翻身 6月4日我是一个WebCrawler,有时候称为Spider,你们经常说的爬虫就是我。 我想我是遇到了好时代,感谢IT政府,提供了简单的HTTP协议,还有HTML,CSS,JavaScript这一系列开放的技术,原来的桌面应用,局域网应用都被搬到了网络上,形成了一个个的网站,网站互联起来,形成了一个覆盖全世界的大网。 在这个大背景下,我应运而生,开始在这个大网上爬来爬去,收集、分析各种网页的数据。 我有几个亲戚在搜索引擎公司工作,听说他们的目标是把全世界的网页都给爬下来,形成索引,让人类搜索,想想全世界网页的数量,这几位亲戚的工作实在是让人敬畏。 我的工作原理非常简单,给我一个URL,我就可以通过HTTP协议把HTML页面下载下来。然后分析一下这个页面中有哪些元素,比如说,表单,表格,链接等等。 反正这个HTML页面是纯文本的,我想怎么折腾都可以,我可以把它形成一颗DOM树,也可以用正则表达式去获得一段我想要的内容,总之方法多得很呢! 最重要的是,我要拿到这个页面中的其他链...
代码星球 代码星球·2020-04-02

python爬虫scrapy之登录知乎

下面我们看看用scrapy模拟登录的基本写法:  注意:我们经常调试代码的时候基本都用chrome浏览器,但是我就因为用了谷歌浏览器(它总是登录的时候不提示我用验证码,误导我以为登录时不需要验证码,其实登录时候必须要验证码的),这里你可以多试试几个浏览器,一定要找个提示你输入验证码的浏览器调试。  1、我们登录的时候,提示我们输入验证码,当验证码弹出之前会有个请求,我们打开这个请求,很明显,type是login,验证码无疑了,就算是看请求的因为名,你也应该知道这个就是验证码的请求,或者打开这个验证码的请求url,这。      验证码的图片,悲惨了,这怎么整。别着急。。    2、验证码提示我们要点击倒着写的字体,这。。。,爬虫和反爬虫就是无休止的互相折磨。这明显就是上面那个图片的信息。    3、机智的我,发现验证码的请求参数里面有三个参数,r是一个13位的数字,type是登录用的,lang很可疑,改改它,把cn给他改成en。mygod这不也是验证码么,就试试它了。      4、页面基本登录原理分析完了,我们接下来看看代码怎么写,首先我们重构scrapy的start_request...

python爬虫scrapy之downloader_middleware设置proxy代理

 一、背景:  小编在爬虫的时候肯定会遇到被封杀的情况,昨天爬了一个网站,刚开始是可以了,在settings的设置DEFAULT_REQUEST_HEADERS伪装自己是chrome浏览器,刚开始是可以的,紧接着就被对方服务器封杀了。代理:  代理,代理,一直觉得爬去网页把爬去速度放慢一点就能基本避免被封杀,虽然可以使用selenium,但是这个坎必须要过,scrapy的代理其实设置起来很简单。  注意,request.meta['proxy']=代理ip的APImiddlewares.pyclassHttpbinProxyMiddleware(object):defprocess_request(self,request,spider):pro_addr=requests.get('http://127.0.0.1:5000/get').textrequest.meta['proxy']='http://'+pro_addr#request.meta['proxy']='http://'+proxy_ip  设置启动上面我们写的这个代理settings.pyDOWNLOAD...

python爬虫scrapy之如何同时执行多个scrapy爬行任务

背景:  刚开始学习scrapy爬虫框架的时候,就在想如果我在服务器上执行一个爬虫任务的话,还说的过去。但是我不能每个爬虫任务就新建一个项目吧。例如我建立了一个知乎的爬行任务,但是我在这个爬行任务中,写了多个spider,重要的是我想让他们同时运行,怎么办?小白解决办法:  1、在spiders同目录下新建一个run.py文件,内容如下(列表里面最后可以加上参数,如--nolog)  2、小白想了(当时的我),这样也行,mygod,那我岂不是多写几行就行就行了么,结果(结果白痴了),小白又想,那加个while循环,把爬虫名字都写入一个列表,这样循环拿到每个spiders的name,结果更惨。  3、下面命令只限于,快速调试的作用或一个项目下单个spider的爬行任务。fromscrapy.cmdlineimportexecuteexecute(['scrapy','crawl','httpbin'])  通过学习才知道原来是这样子:  1、在spiders同级创建任意目录,如:commands  2、在其中创建crawlall.py文件(此处文件名就是自定义的命令)    crawla...
首页上一页...4546474849...下一页尾页