谷歌爬虫Googlebot最近怎么干起了垃圾爬虫的勾当?

四月 28, 2021 by · Leave a Comment 

谷歌爬虫(Googlebot)一向以守规矩著称,然而这两天66.249.71.*中的几个IP地址却干起了垃圾爬虫的勾当:

1、伪造user-agent;
2、伪造访问来路

为了确认没有错怪谷歌爬虫,傅老师还专门反查(dig -x)了一下几个ip:

45.71.249.66.in-addr.arpa. 47657 IN PTR crawl-66-249-71-45.googlebot.com.

143.71.249.66.in-addr.arpa. 86400 IN PTR crawl-66-249-71-143.googlebot.com.

77.71.249.66.in-addr.arpa. 86400 IN PTR crawl-66-249-71-77.googlebot.com.

看样子傅老师没有冤枉这几个googlebot。

至于为什么会发生这种情况,还需要进一步观察一下。

备注:如果你的centos服务器上没有dig命令,可以yum安装:
yum install dnsutils

——本文最后由傅老师于2021-04-28编辑过

2021-04-27拦截的骚扰电话

四月 27, 2021 by · Leave a Comment 

4001095555 @ 2021-04-27 10:21:32

如果您认为上述号码不是骚扰电话,请联系傅老师

2021-04-22拦截的骚扰电话

四月 22, 2021 by · Leave a Comment 

0755 61607315 @ 2021-04-22 11:48:34

如果您认为上述号码不是骚扰电话,请联系傅老师

2021-04-09拦截的骚扰电话

四月 9, 2021 by · Leave a Comment 

0752 7850195 @ 2021-04-09 16:29:03

如果您认为上述号码不是骚扰电话,请联系傅老师

【原创】一个很好的计算问题

四月 4, 2021 by · Leave a Comment 

为了节约流量,傅老师对服务器添加了如下反爬规则:

当某一用户连续下载20张“真图”(每张真图大小都是10k字节)后,开始给这个用户输出“假图”(每张假图大小为3k字节),维持1分钟。1分钟之后恢复正常,如此循环。

问题:在不暂停、不变速的连续“爬图”模式下,用户应该设置怎样的下载速度来下载图片,以获得“爬图”的最大效率?

(效率可以定义为“单位时间内的真图假图比”)

123.6.49.*段的假360蜘蛛最近很用力啊

二月 15, 2021 by · Leave a Comment 

最近有一个爬虫IP段引起了傅老师的注意:

123.6.49.*

反查DNS为:

hn.kd.ny.adsl

其携带的UA显示是360Spider。查360官方文档:http://www.so.com/help/spider_ip.html,此ip段不在官方的蜘蛛列表上,证明它是冒牌的360蜘蛛。

这个假360蜘蛛采集特点和真360蜘蛛不同,后者总是以采集页面的url作referrer,假360蜘蛛则以网站首页做referrer,而且采集量特别巨大,曾有几天(以24小时为单位)竟然超过了百度蜘蛛。

傅老师先养着这个假360蜘蛛(返回200状态,给它一个图片验证),看看它打算爬多久。

position:absolute在firefox中window.print打印时的bug

一月 25, 2021 by · Leave a Comment 

场景:
页面上有类似这样的dom:

<div><img src=“//www.baidu.com/123.jpg”></div>

CSS中设定img:

img{
 position:absolute;
 display:block;
 width:100px;
 height:100px;
}

当页面调用window.print打印时,如果这个dom出现在第二页或之后,img就会出现在body的左上角。Firefox这个position:absolute的坑埋得确实有点深。

解决方法也很简单:给img的上层div加上position:

div{
 position: relative;
}

另外,打印预览的情形下,审查元素依然可用。

——本文最后由傅老师于2021-01-25编辑过

Javascript取得字符串中某字符(或字符串)出现的次数

十一月 17, 2020 by · Leave a Comment 

JS中并没有直接的函数计算一个字符串中某子字符串出现的次数。Javascript常规做法是用split分拆为数组,然后查询length。

另一个正则表达式的做法是:
(str.match(/,/g) || []).length
(str.match(/\*/g) || []).length
或者
(str.match(new RegExp("ant", "g")) || []).length

split速度快,正则会慢一点。

——本文最后由傅老师于2020-11-18编辑过

2020-10-17拦截的骚扰电话

十月 17, 2020 by · Leave a Comment 

4006995555 @ 2020-10-17 11:21:08

如果您认为上述号码不是骚扰电话,请联系傅老师

PHP强制http作301跳转到https代码

九月 13, 2020 by · Leave a Comment 

一般建议在php文件开头调用:

function force_http_to_https(){
	if(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']=='on') return;//https access, skip
	$ssl_url='https://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];//generate https url
	header("HTTP/1.1 301 Moved Permanently");
	header("Location: {$ssl_url}");
	exit;
}

——本文最后由傅老师于2020-09-13编辑过

Next Page »