如何判断网络爬虫还是浏览器访问网站,如何防止?php

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何判断网络爬虫还是浏览器访问网站,如何防止?php相关的知识,希望对你有一定的参考价值。

参考技术A 实用php来爬会非常方便,主要是PHP的正则表达式功能在搜集页面连接方面很方便,另外PHP的fopen、file_get_contents以及libcur的函数非常方便的下载网页内容。

具体处理方式就是建立就一个任务队列,往队列里面插入一些种子任务和可以开始爬行,爬行的过程就是循环的从队列里面提取一个URL,打开后获取连接插入队列中,进行相关的保存。队列可以使用数组实现。

当然PHP作为但线程的东西,慢慢爬还是可以,怕的就是有的URL打不开,会死在那里。本回答被提问者采纳

php如何判断电脑访问还是手机访问?

手机上网用户数量越来越大,如今各网站都推出了手机网站,电脑用户访问时直接访问电脑版网页,当用户通过手机访问网站时则跳自动跳转到手机版网页,下面给大家分享一段php中判断电脑访问还是手机访问的代码:

<?php
//手机网页跳转
//如果检测到访问的浏览器为下列一个指定的移动浏览器 则返回true
function is_mobile(){
	$regex_match="/(nokia|iphone|android|motorola|^mot\-|softbank|foma|docomo|kddi|up\.browser|up\.link|";
	$regex_match.="htc|dopod|blazer|netfront|helio|hosin|huawei|novarra|CoolPad|webos|techfaith|palmsource|";
	$regex_match.="blackberry|alcatel|amoi|ktouch|nexian|samsung|^sam\-|s[cg]h|^lge|ericsson|philips|sagem|wellcom|bunjalloo|maui|";   
	$regex_match.="symbian|smartphone|midp|wap|phone|windows ce|iemobile|^spice|^bird|^zte\-|longcos|pantech|gionee|^sie\-|portalmmm|";
	$regex_match.="jig\s browser|hiptop|^ucweb|^benq|haier|^lct|opera\s*mobi|opera\*mini|320x320|240x320|176x220";
	$regex_match.=")/i";       
	return isset($_SERVER[‘HTTP_X_WAP_PROFILE‘]) or isset($_SERVER[‘HTTP_PROFILE‘]) or preg_match($regex_match, strtolower($_SERVER[‘HTTP_USER_AGENT‘]));
}
	
$is_mobile=is_mobile(); 

if($is_mobile){
	//这是一个手机浏览器,可以跳转到手机版网页
	//header("Location: http://www.abc.com/3g");
	echo "手机访问";
  }else{
	//这不是一个手机浏览器
	//header("Location: http://www.abc.com/desktop");
	echo "电脑访问";
  }
?>

 

以上是关于如何判断网络爬虫还是浏览器访问网站,如何防止?php的主要内容,如果未能解决你的问题,请参考以下文章

如何应对网站反爬虫策略?如何高效地爬大量数据

网络爬虫在爬取网页时,响应头没有编码信息...如何解决保存在本地的乱码问题?

python爬虫中怎么写反爬虫

php如何判断电脑访问还是手机访问?

反爬虫的所有套路和策略

防止网站被爬虫抓取的五种有效方法