`
musicdu
  • 浏览: 6271 次
  • 性别: Icon_minigender_1
  • 来自: 成都
最近访客 更多访客>>
社区版块
存档分类
最新评论

PHP抓新闻

    博客分类:
  • PHP
阅读更多
这是很久以前写的一个抓新浪新闻的东西了,目的是为了方便学校同学不花钱上内网看时事新闻。我是从新浪rss先抓取内容html网址,再进一步匹配标题,正文,图片……
今天又对代码做了点小改动:
//检查是否实视频,是视频则不抓取
if(strpos($title[1],"视频",0)!==false){//以前写的是!=
echo "不抓取视频!";
return false;
}
!==和!=,===和==他们的区别主要就是在判断值是否相等的同时,还要判断两者的类型。以前看书的时候看过,不过到还没真正应用到过自己的代码里面。
http://www.stuhome.net/readnews/   这就是我以前写的那个抓新闻板块。


<?php
require_once(dirname(__FILE__)."/../global.php");
//抓取网页内容
set_time_limit(0);

$line = file_get_contents("http://rss.sina.com.cn/sports/basketball/nba.xml"); 
$line = strstr( $line, "<item>");

$line=explode("</item>",$line);

$count=count($line);
for($i=0;$i<$count;$i++){
	eregi ("<pubDate>(.*)</pubDate>",$line[$i],$time);
	//取得链结
	if (eregi ("<link>(.*)</link>",$line[$i],$out)) { 
		$news = file_get_contents("$out[1]");
		if(eregi ("<h1>(.*)</h1>",$news,$title)){		//匹配标题
			preg_replace("/ /","",$title[1]);		//去除标题中的空格
			$title[1] = trim($title[1]);
			$title[1]=strip_tags($title[1]);					//去除标题中的的HTML标记
			//$title[1] = addslashes($title[1]);

			//检查是否实视频,是视频则不抓取
			if(strpos($title[1],"视频",0)!==flase){
				echo "不抓取视频!";
				//exit;
				return false;
			}
			echo $title[1];
			echo "<br>";
		}else{
			$title[1]="";
		}
		
		$dt=getdate();
		$hours=$dt[hours];
		$publish_time=$dt[year]."-".$dt[mon]."-".$dt[mday]."-".$hours."-".$dt[minutes]."-".$dt[seconds];
		if($title[1]!=""){
			$sql_title="select title from news where title='$title[1]'";
			$result=$DB->fetch_one_array($sql_title);
			if(empty($result)){

				//取出正文部分
				$news = strstr($news,"<!--正文内容开始-->");
				$news = explode("<!--正文内容结束-->", $news);



				//匹配正文内容
				if(eregi ("<p>(.*)</p>",$news[0],$content)){
					echo $content[1];
					echo "<br>";
				}else{
					$content[1]="";
				}


				//匹配图片路径
				$picture_name="";
				$img="";
				$news=explode("border",$news[0]);
				for($j=0;$j<count($news);$j++){
					if(preg_match("/http:\/\/i(.*)\.(jpeg|png|jpg)/i",$news[$j],$picture)){
						$img[$j]=GrabImage($picture[0],""); 
							
						if($img[$j]){
							$imgpath[$j]=dirname(__FILE__)."/pictures/".$img[$j]; 
							echo '<pre><img src='.$imgpath[$j].'></pre>'; 
						}else{
							$img[$j]="";
						}
					}else{
						$picture[0]="";
						$img[$j]="";
					}
					$picture_name.=$img[$j];
				}

			}	
		}
	}
}

?>


<?php
// Function: 获取远程图片并把它保存到本地
// $url 是远程图片的完整URL地址,不能为空。
// $filename 是可选变量: 如果为空,本地文件名将基于时间和日期自动生成.
function GrabImage($url,$filename="") { 
	if($url==""){
		return false;
	}
	if($filename=="") { 
		$ext=strrchr($url,"."); 
		$temext = strrchr(strtolower($url),"."); 
		if($temext!=".jpg"&$temext!=".jpeg"){
			return false;
		}
		$filename=date("dMYHis").$ext;
		$filepath=dirname(__FILE__)."/pictures/".$filename; 
	} 

	ob_start(); 
	readfile($url); 
	$img = ob_get_contents(); 
	ob_end_clean(); 
	$size = strlen($img); 

	$fp2=fopen($filepath, "a"); 
	fwrite($fp2,$img); 
	fclose($fp2); 

	return $filename; 
} 
?>
分享到:
评论
1 楼 imjl 2008-07-26  
file_get_contents,,,汗,,很少抓把,抓得范围也不广,,否则就不会用这个了。

相关推荐

    新闻php+phpmysql

    新闻系统是Web开发中的常见应用,它涉及到PHP编程语言与MySQL数据库的结合使用。在这个"新闻php+phpmysql"项目中,我们可以学习到如何构建一个简单的新闻发布和管理系统。以下是关于这个主题的一些关键知识点: 1. ...

    php100新闻发布系统源码

    "php100新闻发布系统源码"是一款基于PHP编程语言构建的新闻信息发布平台。这个系统提供了全面的功能,便于用户发布、管理和展示新闻内容。在深入理解这个系统之前,我们需要了解PHP的基本概念。PHP(Hypertext ...

    PHP实例之新闻发布系统源码下载

    ### PHP实例之新闻发布系统知识点解析 #### 数据库结构与创建 在本实例中,新闻发布系统的数据库结构被定义为一个名为`news`的表。该表包含以下字段: - **id**:整型(INT),自动递增(AUTO_INCREMENT),作为...

    PHP 新闻与图片发布系统

    【PHP 新闻与图片发布系统】是一个基于PHP编程语言和MySQL数据库构建的管理平台,用于高效、便捷地发布和管理新闻以及图片内容。这个系统旨在为网站内容的更新和维护提供一个用户友好的界面,使得非技术人员也能轻松...

    PHP100_PHPnew新闻系统

    **PHP100_PHPnew新闻系统详解** PHP100_PHPnew新闻系统是一个专为初学者设计的学习资源,它提供了一个完整的新闻管理平台的实例,让学习者能够深入理解PHP编程语言以及相关技术在实际项目中的应用。在这个系统中,...

    php新闻管理系统(简单).rar

    【标题】"php新闻管理系统(简单).rar" 涉及的核心知识点是PHP编程语言以及简单的新闻发布系统设计。PHP是一种广泛使用的服务器端脚本语言,尤其在网页开发领域具有重要地位。这个压缩包可能包含了一个用PHP实现的...

    php+mysql实现简单的新闻发布系统

    在本文中,我们将深入探讨如何使用PHP和MySQL构建一个简单的新闻发布系统。这个系统结合了AJAX、JSON以及富文本编辑器UEditor等技术,旨在帮助初学者理解和实践Web开发中的关键概念。 首先,PHP是一种广泛使用的...

    php+mysql 新闻发布系统

    【PHP+MySQL 新闻发布系统】是一个基于PHP编程语言和MySQL数据库技术开发的动态网站系统。这个系统的主要功能包括新闻的展示、分类管理和后台管理,为用户提供了一个方便、高效的新闻发布和管理平台。 首先,让我们...

    PHP+mysql的新闻发布系统

    【PHP+MySQL新闻发布的系统构建】 在Web开发领域,PHP和MySQL是常用的技术组合,用于构建动态、数据驱动的网站,如新闻发布系统。这个“PHP+mysql的新闻发布系统”就是一个典型的示例,它允许用户发布、管理和展示...

    php100新闻代码

    "php100新闻代码"是一个专为PHP爱好者和开发者提供的资源,它涵盖了构建新闻系统的核心功能,如新闻查看和分页。这个项目基于PHP100平台,一个旨在教授PHP编程和Web开发的在线教育平台。通过学习和研究这个代码库,...

    PHP新闻网站系统源码.zip

    【PHP新闻网站系统源码.zip】是一个包含PHP编程语言实现的新闻网站系统的完整源代码包。这个项目适用于学习PHP编程的学生以及对网站开发感兴趣的初学者,尤其是作为毕业设计的参考。源码通常包括了前端用户界面和...

    php新闻发布系统

    【PHP新闻发布的系统详解】 PHP新闻发布的系统是一种基于Web的动态内容管理系统,它利用PHP编程语言,结合MySQL数据库和Smarty模板引擎,采用面向对象(Object-Oriented Programming, OOP)的设计模式进行开发。...

    php案例 之php新闻博客系统

    (2)在修改之后,在浏览器地址栏中输入http://localhost/cms/install.php即可配置新闻网站; (3)配置完成之后必须将install.sql和install.php文件修改为--install.sql和--install.php. (4)配置完成之后,在地址栏...

    php语言新闻系统

    【PHP语言新闻系统详解】 PHP(Hypertext Preprocessor,超文本预处理器)是一种广泛使用的开源脚本语言,尤其在Web开发领域中占有重要地位。它以嵌入HTML的方式编写,使得网页动态化,功能丰富。这个“PHP语言新闻...

    PHP新闻网站系统

    【PHP新闻网站系统】是一个基于PHP编程语言和MySQL数据库构建的在线新闻发布平台。该系统旨在为用户提供一个方便快捷的方式来发布、管理和展示新闻内容。在理解这个系统之前,我们需要熟悉PHP和MySQL的基础知识。 ...

    php简单新闻发布管理

    本文将深入探讨基于PHP的简单新闻发布管理系统,该系统具备文章发布、修改和删除的功能,适用于初学者理解PHP与HTML的交互以及基础的数据库操作。 首先,`connect.php`文件是数据库连接文件,它包含了与MySQL数据库...

    简单的php新闻程序

    【标题】"简单的php新闻程序"所涉及的知识点主要集中在使用PHP编程语言开发一个新闻管理系统。这个系统可能是用于展示和管理网站上的新闻内容,提供发布、编辑和删除新闻的功能。 【描述】描述中的"php新闻程序简单...

    php 新闻后台系统

    【PHP新闻后台系统详解】 PHP新闻后台系统是一个基于PHP编程语言构建的内容管理系统,主要用于网站新闻发布、编辑和管理。对于PHP新手来说,这是一个很好的实践项目,能够帮助他们掌握PHP基础以及数据库管理和前端...

    php 新闻发布系统

    【PHP 新闻发布系统】是一种基于PHP编程语言构建的在线内容管理系统,主要用于分享和发布新闻资讯。这个系统的核心目标是提供一个用户友好的界面,让用户能够方便地创建、编辑、管理和发布新闻文章。在初级阶段,它...

    phpweb抓包教程

    phpweb抓包教程

Global site tag (gtag.js) - Google Analytics