代码之美--简单采集的采集程序
时间:2008-10-07
来源:互联网
在发代码之前有必要说说自己的想法,代码之美其实可以说成是表面美和内在的美.表面美就是在代码的排版缩进上,内在的美在于编程的思路上,唯有两者兼顾才是真正的美.
我是新手,所以拿不出什么像样的代码,下面的这段代码即不是内在美也不是外在美,希望大家见谅.
好好的格式一进来就变样了
<!--导入ajax.js文件-->
<script src="ajax.js"></script>
<!--这是每本小说的提交入口-->
<form id="form1" method="post">
<input name="url" type="text" id="url" size="40" />
<select name="select" id="select">
<option value="1">玄幻小说</option>
<option value="2">武侠小说</option>
<option value="3">网游小说</option>
<option value="4">言情小说</option>
<option value="5">恐怖灵异</option>
<option value="6">历史军事</option>
<option value="7">科幻小说</option>
<option value="8">网络小说</option>
<option value="9">都市小说</option>
<option value="10">全本小说</option>
</select>
<input type="submit" name="button" id="button" value="提交" />
</form>
<!--下面这个div主要是采集状态显示-->
<div id="display"></div>
<script>
/*新建两个AJAX变量 以及一个定时变量*/
var ajax_get_url;
var ajax_get_book;
var time;
/*这是一个得到指定ID的节点*/
function $(obj){
return document.getElementById(obj);
}
/*获取要采集的网址,并用ajax提交*/
function get_url(){
url=$("url").value;//获取网址
fl=$("select").value;//获取分类
ajax_get_url=new ajax("g2.php","url="+url+"&select="+fl,get_url_result);//发送请求
return false;//本函数返回空,是为了防止页面刷新
}
/*get_url()函数通过ajax请求返回状态*/
function get_url_result(str){
$("display").innerHTML=str;//显示状态
get_book();//开始采集书中的章节
}
/*开始采集书中的章节*/
function get_book(){
clearTimeout(time);//清空定时间函数
ajax_get_book=new ajax("g3.php","",get_book_result);//激活g3.php这个文件
time=setTimeout("get_book()",10000);//每十秒重复执行本函数一次,这个主要用于防止在请求g3.php中卡死,没有反映后十秒重新激活
}
/*返回结果处理*/
function get_book_result(str){
/*如果返回的内容str为空不作任何处理*/
if(str!=""){
$("display").innerHTML=str;/*显示返回的状态*/
clearTimeout(time);/*清空定时*/
time=setTimeout("get_book()",1000);/*当返回内容后在接着下一步采集*/
}
}
</script>
我是新手,所以拿不出什么像样的代码,下面的这段代码即不是内在美也不是外在美,希望大家见谅.
好好的格式一进来就变样了
<!--导入ajax.js文件-->
<script src="ajax.js"></script>
<!--这是每本小说的提交入口-->
<form id="form1" method="post">
<input name="url" type="text" id="url" size="40" />
<select name="select" id="select">
<option value="1">玄幻小说</option>
<option value="2">武侠小说</option>
<option value="3">网游小说</option>
<option value="4">言情小说</option>
<option value="5">恐怖灵异</option>
<option value="6">历史军事</option>
<option value="7">科幻小说</option>
<option value="8">网络小说</option>
<option value="9">都市小说</option>
<option value="10">全本小说</option>
</select>
<input type="submit" name="button" id="button" value="提交" />
</form>
<!--下面这个div主要是采集状态显示-->
<div id="display"></div>
<script>
/*新建两个AJAX变量 以及一个定时变量*/
var ajax_get_url;
var ajax_get_book;
var time;
/*这是一个得到指定ID的节点*/
function $(obj){
return document.getElementById(obj);
}
/*获取要采集的网址,并用ajax提交*/
function get_url(){
url=$("url").value;//获取网址
fl=$("select").value;//获取分类
ajax_get_url=new ajax("g2.php","url="+url+"&select="+fl,get_url_result);//发送请求
return false;//本函数返回空,是为了防止页面刷新
}
/*get_url()函数通过ajax请求返回状态*/
function get_url_result(str){
$("display").innerHTML=str;//显示状态
get_book();//开始采集书中的章节
}
/*开始采集书中的章节*/
function get_book(){
clearTimeout(time);//清空定时间函数
ajax_get_book=new ajax("g3.php","",get_book_result);//激活g3.php这个文件
time=setTimeout("get_book()",10000);//每十秒重复执行本函数一次,这个主要用于防止在请求g3.php中卡死,没有反映后十秒重新激活
}
/*返回结果处理*/
function get_book_result(str){
/*如果返回的内容str为空不作任何处理*/
if(str!=""){
$("display").innerHTML=str;/*显示返回的状态*/
clearTimeout(time);/*清空定时*/
time=setTimeout("get_book()",1000);/*当返回内容后在接着下一步采集*/
}
}
</script>
作者: gvtbs 发布时间: 2008-10-07
[php]
<?
require_once 'conn.php';//引用数据库联接文件
/*本存图片函数*/
function getimg($url,$filename){
/*判断图片的url是否为空,如果为空停止函数*/
if($url==""){
return false;
}
/*取得图片的扩展名,存入变量$ext中*/
$ext=strrchr($url,".");
/*判断是否是合法的图片文件*/
if($ext!=".gif" && $ext!=".jpg"){
return false;
}
/*读取图片*/
$img=file_get_contents($url);
/*打开指定的文件*/
$fp=@fopen($filename.$ext,"a");
/*写入图片到指点的文件*/
fwrite($fp,$img);
/*关闭文件*/
fclose($fp);
/*返回图片的新文件名*/
return $filename.$ext;
}
/*得到要采的地址*/
$url=$_POST["url"];
/*得到要采内容的分类*/
$fl=$_POST["select"];
/*如果两个都不等于空,开始采集*/
if($url!="" && $fl!=""){
/*获取内容*/
$content=strtolower(file_get_contents($url));
/*匹配标题*/
preg_match_all("/<h1><a(.*?)>(.*?)<\/a><\/h1>/",$content,$t_title);
$title=trim($t_title[2][0]);
/*匹配图片*/
preg_match_all("/<div class=\"bllump_img\"><a(.*?)><img src=\'(.*?)\' (.*?)><\/a><\/div>/",$content,$t_img);
$img=$t_img[2][0];
/*匹配作者*/
preg_match_all("/<b>作者:<\/b>(.*?)<\/div>/",$content,$t_author);
$author=trim($t_author[1][0]);
/*匹配简介*/
preg_match_all("/<div class=\"lrcon\">(.*?)<div class=\"listright_table\">/is",$content,$t_jj);
$xs_jj=htmlspecialchars(strip_tags($t_jj[1][0]));
/*清除简介中的空格*/
$xs_jj=str_replace('&nbsp;&nbsp;&nbsp;','',$xs_jj);
$xs_jj=trim(str_replace('&nbsp;[全文]','',$xs_jj));
/*如果标题不存在,采集失败*/
if($title==""){
echo "小说不存在";
exit;
}
/*生成图片的名字*/
$fliename="book_img/".time()."_".rand(0,9999);
/*保存图片*/
$img_url=getimg($img,$fliename);
/*把小说入库*/
mysql_query("insert into book (type,title,author,jj,addtime,img) values ('".$fl."','".$title."','".$author."','".$xs_jj."','".time()."','".$img_url."')");
/*获得小说编号*/
$book_id=mysql_insert_id();
/*匹配小说文章列表*/
preg_match_all("/href=\"\.\.\/detail(.*?)\"/",$content,$nl_url);
/*读出列表长度*/
$max=count($nl_url[1]);
/*把列表存入任务表*/
for($i=0;$i<$max;$i++){
$time_url="http://www.*****.com.cn/detail".$nl_url[1][$i];
mysql_query("insert into task (url,cj_state,book_id) values ('".$time_url."','0','".$book_id."')");
}
/*返回结束*/
echo 1;
}
/*返回结束*/
echo 1;
?>
[/php]
<?
require_once 'conn.php';//引用数据库联接文件
/*本存图片函数*/
function getimg($url,$filename){
/*判断图片的url是否为空,如果为空停止函数*/
if($url==""){
return false;
}
/*取得图片的扩展名,存入变量$ext中*/
$ext=strrchr($url,".");
/*判断是否是合法的图片文件*/
if($ext!=".gif" && $ext!=".jpg"){
return false;
}
/*读取图片*/
$img=file_get_contents($url);
/*打开指定的文件*/
$fp=@fopen($filename.$ext,"a");
/*写入图片到指点的文件*/
fwrite($fp,$img);
/*关闭文件*/
fclose($fp);
/*返回图片的新文件名*/
return $filename.$ext;
}
/*得到要采的地址*/
$url=$_POST["url"];
/*得到要采内容的分类*/
$fl=$_POST["select"];
/*如果两个都不等于空,开始采集*/
if($url!="" && $fl!=""){
/*获取内容*/
$content=strtolower(file_get_contents($url));
/*匹配标题*/
preg_match_all("/<h1><a(.*?)>(.*?)<\/a><\/h1>/",$content,$t_title);
$title=trim($t_title[2][0]);
/*匹配图片*/
preg_match_all("/<div class=\"bllump_img\"><a(.*?)><img src=\'(.*?)\' (.*?)><\/a><\/div>/",$content,$t_img);
$img=$t_img[2][0];
/*匹配作者*/
preg_match_all("/<b>作者:<\/b>(.*?)<\/div>/",$content,$t_author);
$author=trim($t_author[1][0]);
/*匹配简介*/
preg_match_all("/<div class=\"lrcon\">(.*?)<div class=\"listright_table\">/is",$content,$t_jj);
$xs_jj=htmlspecialchars(strip_tags($t_jj[1][0]));
/*清除简介中的空格*/
$xs_jj=str_replace('&nbsp;&nbsp;&nbsp;','',$xs_jj);
$xs_jj=trim(str_replace('&nbsp;[全文]','',$xs_jj));
/*如果标题不存在,采集失败*/
if($title==""){
echo "小说不存在";
exit;
}
/*生成图片的名字*/
$fliename="book_img/".time()."_".rand(0,9999);
/*保存图片*/
$img_url=getimg($img,$fliename);
/*把小说入库*/
mysql_query("insert into book (type,title,author,jj,addtime,img) values ('".$fl."','".$title."','".$author."','".$xs_jj."','".time()."','".$img_url."')");
/*获得小说编号*/
$book_id=mysql_insert_id();
/*匹配小说文章列表*/
preg_match_all("/href=\"\.\.\/detail(.*?)\"/",$content,$nl_url);
/*读出列表长度*/
$max=count($nl_url[1]);
/*把列表存入任务表*/
for($i=0;$i<$max;$i++){
$time_url="http://www.*****.com.cn/detail".$nl_url[1][$i];
mysql_query("insert into task (url,cj_state,book_id) values ('".$time_url."','0','".$book_id."')");
}
/*返回结束*/
echo 1;
}
/*返回结束*/
echo 1;
?>
[/php]
作者: gvtbs 发布时间: 2008-10-07
这个采集还有一个文件没有放上来,东西很简单不过这个恩路大家可以去想想怎么应用哦.把JS与PHP完美的结合
作者: gvtbs 发布时间: 2008-10-07
嗯,可以稳定的进行采集啊.先收藏学习下.
作者: wanchun0222 发布时间: 2008-10-14
学习...
作者: jonma 发布时间: 2009-06-27
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28