php调用ad

相信很多SEOER在调用广告的时候都会遇到页面跳转的问题,常用的方式有JS使用 frame 框架调用,或者通过JS代码实现页面跳转到广告页面。

我们先来了解下爬虫的一个抓取过程:

  • 首先百度爬虫在第一次发现新网站的时候,首先获取的是首页(index.html)
  • 此时一般会使用 111.206.. 或者 123.125.. 段的爬虫先来抓取 css 文件,JavaScript,image 图片等
  • 对于已经做好准备工作后,并不是很快就来抓取网站的内页,因为在接下来的一段时间里,会对网站首页信息做分析,并过一个月左右的沙盒期。
  • 过了沙盒期的考察,此时回来抓取内页的数据,并陆续根据系统的要求满足而释放部分页面。

了解了整个网站收录到释放的过程,那么对于seoer一些常用的JS调用的广告有什么弊端呢?

  1. 因为爬虫最早的时候已经爬取了JS文件,那么经过现在的技术识别,爬虫会根据JS代码中的url地址,也会爬取。
  2. 当爬虫爬取了广告页面的HTML后,就会发现很多页面的标题跟之前的页面标题不符。(这也就为什么我们经常看到内页的标题怎么在搜索引擎搜索的结果里显示的是广告页面的标题)

那么这也的问题能可以避免呢?
当然是可以的,我们从思路上去调整,而不再是从JS代码技术上去用技术避免跟踪。

下面这段代码是PHP根据爬虫来判断是否需要展示广告页面。
也就是说,当是用户访问的时候,我们展现广告页面,是爬虫来拜访的时候我们就给到它作品的数据或者直接拒绝。

php代码分享如下,供参考:



if(isset($_SERVER['HTTP_USER_AGENT'])){
	
	$USER_AGENT = strtolower($_SERVER['HTTP_USER_AGENT']);
	
	if (stripos($USER_AGENT, strtolower("Baiduspider")) !== false || stripos($USER_AGENT, strtolower("360Spider")) !== false || stripos($USER_AGENT, strtolower("Sogou")) !== false || stripos($USER_AGENT, strtolower("YisouSpider")) !== false) {
	
	} elseif (stripos($USER_AGENT, "bot") !== false || stripos($USER_AGENT, "spider") !== false || stripos($USER_AGENT, "slurp") !== false || stripos($USER_AGENT, "altavista") !== false || stripos($USER_AGENT, "ia_archiver") !== false) {
		exit("");
	} else {
		$client = array('nokia', 'sony', 'ericsson', 'mot', 'samsung', 'htc', 'sgh', 'lg', 'sharp', 'sie-', 'philips', 'panasonic', 'alcatel', 'lenovo', 'iphone', 'ipod', 'blackberry', 'meizu', 'android', 'netfront', 'symbian', 'ucweb', 'windowsce', 'palm', 'operamini', 'operamobi', 'openwave', 'nexusone', 'cldc', 'midp', 'wap', 'mobile', 'MicroMessenger');
		if (preg_match("/(" . implode('|', $client) . ")/i", strtolower($_SERVER['HTTP_USER_AGENT']))) {
			$content = file_get_contents('https://www.ad.com/m/');
			exit($content);
		} else {
			$content = file_get_contents('https://www.ad.com/');
			exit($content);
		}
	}
}
?>


思路分析如下:

  • 使用 HTTP_USER_AGENT 里的标记来做判断依据。
  • 如果是我们希望展现的爬虫来抓取数据的时候就直接展示真实页面数据。
  • 如果不是我们希望展现给的爬虫,而是一些不相干的爬虫的时候,不仅没有任何有意义,反而以为他的大量的爬虫会带来服务器的压力承受和流量浪费,像这种没有意义的bot,我们可以选择返回404,不再受到骚扰。
  • 真实用户访问,此时可以根据设备来调用是移动端AD页面还是PC端AD页面。
  • 将上面的页面内容保存为 ad.php文件,在内页php展示页面的顶部调用该页面即可,这样就不用在每个需要调用的页面去添加这段代码。

代码只是一个例子,参考这样的思路,可以尽情发挥。

需要解释的一点是,在调用 ad 页面的时候,为什么要使用 file_get_contents() 方法,而不是直接用路径来调用页面,这是因为,如果我们的网站很多,尤其是有大量站qun的时候,几百几千个网站的时候,这时候我们就不能再一个个去添加ad页面,我们可以使用统一调用一个ad页面来统一管理。

你可能感兴趣的:(php调用ad)