百度局域网异常访问屏蔽策略破解方法
百度局域网异常访问 百度屏蔽抓取页面 php 抓取百度页面 时间内向百度发出大量连接请求,即会受到百度局域网异常访问屏蔽策略的限制。显示出以下结果:很抱歉,您的电脑或所在的局域网络有异常的访问,此刻我们无法响应您的请求。 请输入以下验证码,即可恢复使用。 该页面的出现严重影响了对百度产品页面抓取的各种程序的功能。经研究,找到了2种较好的解决方法 1.PHP抓取页面受限的破解方法 在使用PHP抓取百度知道问题页时,由于PHP程序抓取速度过快,导致被屏蔽,采用以下的方式解决 抓取页面需采用fsockopen方式,使用file_get_contents无法设置请求头 fsockopen函数的使用方法请自行查阅,例子中的geturlcont函数为自定义函数,核心即为fsockopen,geturlcont函数的原型 geturlcont($url, $referer = "" ,$cookie),$url为待抓取的页面的url,$referer为传递的referer参数(主要用于防止抓到的是百度首页),$cookie为重要的一个参数,用于破解局域网异常访问屏蔽功能 例子: $page=geturlcont("http://zhidao.baidu.com/question/1.html", $referer = "http://www.baidu.com/search/ressafe.html?q=&ms=3&url=http://zhidao.baidu.com/question/1.html" ,$_COOKIE['BAIDUVERIFY']); //$page获取到的是http://zhidao.baidu.com/question/1.html页的代码或空(被百度屏蔽) if($page==NULL){//页面获取失败$page=file_get_contents("http://zhidao.baidu.com/question/1.html?oldq=1");//为了得到屏蔽页需要使用file_get_contentspreg_match('//i',$page,$vcode);preg_match('/"[0-9A-F]*"/i',$vcode[0],$vcode);$vcode=str_replace('"',"",$vcode[0]);preg_match('//i',$page,$id);preg_match('/"[0-9]*"/',$id[0],$id);$id=str_replace('"',"",$id[0]);preg_match('//i',$page,$di);preg_match('/"[0-9a-f]*"/i',$di[0],$di);$di=str_replace('"',"",$di[0]);setcookie('BAIDUVERIFY',$vcode.':'.$id.':'.$di.';');//本例中使用cookie保存这个BAIDUVERIFY值,也可以用文件或数据库来保存 } 其中$cookie的值将会作为请求头中的cookie,当百度服务器接收到含有指定的正确的BAIDUVERIFY时就能正常的返回内容,但这个COOKIE的生存期应该在20分钟内,当再次出现问题时,程序将重新自动修改cookie并继续抓取页面。 2.Chrome扩展直接跳转方案 在另一个程序中,不需要抓取页面内容,但会同时打开数十页的百度页面,同样可能会造成短时间内请求过多导致的屏蔽,解决方法是通过Chrome扩展的js注入功能实现 例子: //以下用到的Tangram方法可参见http://tangram.baidu.com/api#baidu() var url=baidu('input[name=url]').attr('value');//获取屏蔽前访问的URL var vcode=baidu('input[name=vcode]').attr('value');//序列号 var id=baidu('input[name=id]').attr('value');//被屏蔽的时间的UNIX时间戳(服务器时间) var di=baidu('input[name=di]').attr('value');//应该为与序列号对应的一个密码,用于防止通过程序自行生成 baidu.cookie.setRaw('BAIDUVERIFY',vcode+':'+id+':'+di,{expires:600*1000,domain:'baidu.com'});//设置cookie,注意要设置在baidu.com域下,否则会设置到verify.baidu.com中 location.href=url;//跳回原页面 附(百度屏蔽页的代码): <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>百度--您的访问出错了</title> <style> body{text-align:center;margin-top:3px} #wrap{width:650px;text-align:left;margin:auto} #logo{float:left;margin:0 3px 0 0} #logo img{border:0} #title{float:left;width:510px} #intitle{margin:20px 0 0 0;background-color:#e5ecf9;width:100%;font-weight:bold;font-size:14px;padding:3px 0 4px 10px} #content{clear:left;padding-top:60px;line-height:200%} #vf{margin-top:10px} #vf img{float:left;border:1px solid #000} #kw{font:16px Verdana;height:1.78em;padding-top:2px} #vf form{float:left;margin:12px 0 0 5px;padding:0} #ft{text-align:center} #ft,#ft a{color:#666;font-size:14px} </style> </head> <body> <div id="wrap"> <div id="logo"><a href="http://www.baidu.com"><img alt="到百度首页" title="到百度首页" src="http://www.baidu.com/img/logo-yy.gif" width="137" height="46"></a></div> <div id="title"><div id="intitle">您的访问出错了</div></div> <div id="content">很抱歉,您的电脑或所在的局域网络有异常的访问,此刻我们无法响应您的请求。 <br>请输入以下验证码,即可恢复使用。</div> <div id="vf"> <img src="http://verify.baidu.com/cgi-bin/genimg?9D5771ED69F27050263223420F7043C211B95E2D3616825774FF64E3FEF61920E3089D79E454888755B8F3AFDF124C9C74A34C4DDFAFD27827B3512B437BE76043" width="120" height="40"> <form action="http://verify.baidu.com/verify"> <input type="hidden" name="url" value="http://zhidao.baidu.com/question/519848902?oldq=1&vf_tf=1"> <input type="hidden" name="vcode" value="9D5771ED69F27050263223420F7043C211B95E2D3616825774FF64E3FEF61920E3089D79E454888755B8F3AFDF124C9C74A34C4DDFAFD27827B3512B437BE76043"> <input type="hidden" name="id" value="1359359285"> <input type="hidden" name="di" value="530e060fe3c68f3d"> <input type="text" size="6" maxlength="10" name="verifycode" id="kw"> <input type="submit" value="提交"> </form> </div> <div style="clear:left;height:90px"></div> <div id="ft">© 2012 Baidu <a href="http://www.baidu.com/duty/index.html">免责声明</a></div> </div> <script> (function(){var rfr = window.document.location.href,p = encodeURIComponent(rfr),img = new Image(),imgzd = new Image(),re = /\/vcode\?http:\/\/(\S+)\.baidu/ig,r="";img.src = "http://nsclick.baidu.com/v.gif?pid=201&pj=vcode&path="+p+"&t="+new Date().getTime();r = re.exec(rfr);if(r&&r[1]){imgzd.src = "http://"+r[1]+".baidu.com/v.gif?fr=vcode&url="+p+"&t="+new Date().getTime();}})(); </script> </body> </html>
转载于:https://www.cnblogs.com/xuxiaoshuan/p/3624513.html
百度局域网异常访问屏蔽策略破解方法相关推荐
- 局域网-无法访问网上邻居解决方法
局域网-无法访问网上邻居解决方法在局域网内安装了WindowsXP的电脑不能与安装了Windows98的电脑互相访问,安装了WindowsXP的电脑与安装了WindowsXP的电脑也不能互相通信.在工 ...
- 局域网匿名访问共享文件的设置方法?
在企业局域网咱们设置了共享文件的状况下,经常须要匿名访问,也就是不须要输入密码便可访问电脑共享文件.可是因为操做系统的安全限制,会禁止经过匿名方式访问共享文件的,这种状况下只须要进行简单设置便可实现共 ...
- 局域网内的计算机拒绝访问,win10系统局域网拒绝访问的解决方法
win10系统局域网拒绝访问的解决方法? 我们在操作win10系统电脑的时候,常常会遇到win10系统局域网拒绝访问的问题.那么出现win10系统局域网拒绝访问的问题该怎么解决呢?很多对电脑不太熟悉的 ...
- win7系统无法连接局域网服务器,Win7局域网无法访问如何解决?
最近有Win7用户反映,访问局域网的时候出错,导致无法正常共享文件,共享打印机等,用户并不知道这是怎么回事,也不知道该如何解决,为此非常苦恼.那么,Win7局域网无法访问如何解决呢?接下来,我们一起往 ...
- 【软件之道】Origin2017-安装及破解方法
Origin是简单易学.操作灵活.功能丰富全面的画图软件,既可以满足一般用户的制图需要,也可以满足高级用户数据分析.函数拟合的需要.目前,它似乎已成为专业论文SCI的标配绘图软件.缺点是操作系统不太友 ...
- MySQL局域网内访问慢的原因及解决方法
转载自 http://blog.csdn.net/tiantang_1986/article/details/76890178 MySQL局域网内访问慢的原因及解决方法. 出现原因:主要是因为DNS服 ...
- cf不能全屏win7的解决方法_win7系统局域网不能访问怎么办 win7局域网不能访问解决方法...
在局域网当中比较实用的功能要数共享文件了,局域网共享可以让用户们共享和管理资源更加便捷,可以大大提高工作效率,不过最近有位win7系统用户使用电脑的时候,发现电脑无法访问局域网中的其他任何一台电脑,这 ...
- day03--java基础编程:面向对象,构造方法,代码块讲解,this super,static,final,访问修饰符,方法重写,向上/下造型,main方法,抽象类,接口,设计模式,异常,内部类
1 Day06–面向对象1 1.1 面向对象 1.1.1 概念 推荐看的书:Thinking in java 概念:所谓的面向对象是一种编程思想,通过这种思想可以把生活中的复杂事情变得简单化,从原来的 ...
- 百度流量异常投诉方法、网站被黑了处理方案、网站被镜像处理方案
<百度流量异常投诉方法> 我们来看看投诉秘籍,当然前提是您网站内容价值高,您没有排上来是百度的损失,比如插入在你结果前面的页面都不如你,甚至很垃圾,比如用户搜你网站名的时候你却排不上来等. ...
最新文章
- 复杂的选择屏幕搜索帮助
- [转] 理解SVG transform坐标变换
- 查询分析300万笔记录_一分钟狂销100万件商品!Shopee虾皮双12大促再创记录
- Android 沙箱开源,Android Sandbox(沙箱)开源工具介绍
- POJ3728 THE MERCHANT LCA RMQ DP
- Android系统(120)-android的事件分发机制
- sql数据透视_SQL Server中的数据科学:取消数据透视
- Linux查看、运行和杀死java进程
- UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xae in position 53: illegal multibyte sequence
- 低压电力线载波通信原理
- CryEngine3 调试Shader方法
- s22服务器未响应,王者荣耀资源包升级失败怎么办_王者荣耀S22资源包升级失败解决办法_玩游戏网...
- 丽台显卡测试软件,领先A卡62% 丽台7系显卡对比测试
- 鼎捷T100 以客制批次作业为例,画面规格生成后编译程式报错问题
- 雷电模拟器导入burp证书
- 青岛新媒体运营教程:三步浅谈活动运营,拆解策划实施
- 个人站长的廉价劳动力
- Kindeditor上传图片报错
- matlab矩阵画柱状三维,[原创]利用MATLAB绘制三维彩色柱状图
- 利用博弈论解释非理性行为