有时候,你需要在一个自己另外的网站上调用文章,可是,你又懒得每次去录入更新,如果不在一个主机上,远程连接数据库又不是很好的注意,那么怎么办?抓取!
如果去写个抓取的程序,是比较麻烦的,而且,也可能带来临时的速度影响。好在,可以获取RSS,这样比较方面。
如何用php获取RSS的示例,我前面有写过一篇文章:http://www.sdtclass.com/2819.html
但是,这样的做法,会造成每次打开网站都变慢,而且如果另一个站挂了还会拖慢更多。那么怎么办呢?写个定时脚本,把抓取的数据写入数据库,但是每次打开页面是从数据库查询即可。大家先去看我前面的那个文章。然后得到一些代码,那么这里面有个地方可以利用,看这里:
- //构造输出字符串 ,显示的地方,可以自定义!
- $rss_str .= "<div class=\"result_list\"><a href='".$link."' target=_blank>".$title."</a></div><div class=\"line\"></div>";
- $is_item = 0;
这个地方是把数据处理了,最后面 echo $rss_str; 的。那么,我们就修改这里,改为SQL语句即可。
- $sqlup = "INSERT INTO `dbname`.`rss_news` (`id`,`title`,`link`) VALUES ('', '".$title."', '".$link."')";
- mysql_query($sqlup,$mysql);
- $sqlin=mysql_insert_id();
当然了,你需要写一个连接数据库的配置信息,和建立相关的数据表和字段,详情查看我前面写的php教程:
http://www.sdtclass.com/3023.html and http://www.sdtclass.com/3064.html
数据库的话,可以执行下面的语句来添加数据表和字段:
- CREATE TABLE `sdt_news` (
- `id` int(2) NOT NULL auto_increment,
- `title` varchar(128) NOT NULL,
- `link` varchar(64) NOT NULL,
- UNIQUE KEY `id` (`id`)
- ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=11 ;
这里会建立一个 sdt_news 的数据表,同时建立“id、title、link”三个字段。
请自己在本地环境测试该功能,完成后再上线,如果完全看不懂或者部分不懂,请付费联系解决。
QQ 184923973
2015年07月09日 10:07 -9楼
换个角度看有做一个feed集合
或换一个角度变成一个变相采集
2015年07月10日 12:33 地下1层
@yijile 你说我的集合?引流到人家那里叫采集?
2015年07月11日 10:56 地下2层
@yumanutong no,我的意思是,吧feed内容入数据库 可以变相弄一个采集站来
2015年07月11日 10:57 地下2层
@yumanutong 没看太仔细,,,只有标题和链接。。。我以为内容也有
2015年07月15日 00:54 地下3层
@yijile RSS的信息获取,内容也是可以的。但是如果这个也公布就真的被人利用来采集了,但是其实不公布,也有很多现成的采集程序了。
2015年08月12日 17:39 -8楼
博主,您好,boke123导航(boke123.net)从2015年8月5日起正式更名为boke112导航(boke112.com),欢迎有空前去围观,谢谢。
2015年08月15日 20:39 地下1层
@boke112导航 好