抓取异常信息 服务器错误,抓取异常信息: socket 读写错误 - 狸窝

正 文:

现在有些IDC为了服务器的稳定运行,会给服务器安装金盾防火墙来防止CC/DDOS攻击等,这本来是一件好事,可以有效的阻止这些非法攻击,但是由于开启了金盾防火墙,所有的网址后面会出现随机符:?jdfwkey=jkd3k类似这样的。

jdfwkey 含义解读:j(金)d(盾)f(火-fire)w(墙-wall)key(验证码)=hj67l9(随机码)。

当开启了金盾防火墙后,根据策略不同,一般有两种情况发生:

(一)可能所有的网址后面都会自动添加 jdfwkey 验证码;

(二)也有可能每个新IP第一次访问网站时出现 jdfwkey 验证码,在接下来的一段时间内(一般为24小时内)不再出现 jdfwkey,但是超过一定的时间后(如24小时),又会自动出现 jdfwkey 验证码。

开启金盾防火墙的好处就是可以防止ddos之类攻击,但是今天飘易要说的不是它的好处,而是它的严重弊端!

虽然开启金盾后,用户通过浏览器(默认支持javascript)可以正常浏览网站内容,真正的流程是:

打开网页 --> 获取一段跳转的JS代码(搜索引擎会卡在这里) --> 真正的网页。

大家都知道,搜索引擎在抓取网站页面的时候,是不支持javascript代码的,更不会执行任何js代码。开启金盾防火墙后,搜索引擎在抓取网页的时候,只能抓取到下面的这段提示“访问本页面,您的浏览器需要支持JavaScript”的源码:

>7)|((ab[cb]<<1)&0xff);}bb="";for(cb=1;cb

访问本页面,您的浏览器需要支持JavaScript

The browser needs JavaScript to continue

这根本不是网页原始代码,搜索引擎自然会认为你的网站出现了严重问题,因为所有的页面都返回了这样的毫无意义的js代码。结果可想而知,时间一长,搜索引擎接下来就是要降权、K站。

【解决方法:】

如果我们设计的winform程序,用户定时发出请求,这类请求完全正常,只是防火墙误杀了。我们可以在winform里放置一个webbrowser,当检测到出现上述特征代码时,启用webbrowser访问网页一次后,再次使用HttpWebRequest 获取网页源码即可。原理就是利用了 webbrowser 可以执行javascript代码的特点。

string html = getHtml(g_url, "utf-8"); //利用HttpWebRequest获取网页源码

if (html.ToLower().Contains("needs javascript to continue"))

{

string jdfwkey = "检测到服务器启用了防火墙!  时间:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "\r\n";

StreamWriter sw = File.AppendText("error.txt");

sw.Write(jdfwkey);

sw.Close(); sw.Dispose();

webBrowser3.Navigate(g_url); //启用浏览器访问一次

//* ---------------------

int i = 0;

while (i < 20) { Application.DoEvents(); Thread.Sleep(100); i++; }

while (i < 100)

{ //延时

Application.DoEvents(); Thread.Sleep(100); i++;

if (webBrowser3.ReadyState == WebBrowserReadyState.Complete && (webBrowser3.StatusText == "完成" || webBrowser3.StatusText == "Done")) break;

}

//* ---------------------

goto endthis;

&nbsp

亲,或许有关 ---

"服务器防火墙打开后百度抓取失败"

教程及解决方案到这里 -->>  〖狸窝宝典〗有答案!如没有,请反馈给客服qq876292449

㊣狸窝- 为用户提供解决方案! 如需客服(QQ876292449)人工协助解决问题请升级vip,这里升级:

http://www.leawo.cn/do.php?ac=rg

成为vip后有什么好处?

http://www.leawo.cn/space-1-do-thread-id-28884.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值