ITPUB??ì3
12月微软Hyper-V虚拟化沙龙主题征集
ITPUB论坛 » WEB程序开发 » 原创,用PHP获取别人网站数据并加入到自己数据库中

新一届的微软MVP评选已经开始,欢迎各位推荐!

标题: 原创,用PHP获取别人网站数据并加入到自己数据库中
离线 情人节
囍囍囍囍


来自 Φ囮囚囻囲囷國
精华贴数 3
个人空间 0
技术积分 321 (6233)
社区积分 11899 (129)
注册日期 2003-12-14
论坛徽章:5
      
      

发表于 2004-6-18 11:55 
原创,用PHP获取别人网站数据并加入到自己数据库中

实际上特别简单。噶噶。
就是打开
然后用正规表达式分析--输出--INSERT到数据库。。。

主要是要求对正则熟悉一点
大家可以看我的效果。
我偷的笑话站2万左右数据。一会就完成了

http://joke.flash163.com


其实很好盗。一个就是取出笑话内容就行 。主要是要更新笑话的类别ID。就个就得读别人的列表更新了

先提供取笑话内容的代码。
PHP code:


<?PHP

/*

数据库 down 运行于 localhost 

# phpMyAdmin SQL Dump

# version 2.5.4-rc2

# <a href="http://www.phpmyadmin.net" target="_blank">http://www.phpmyadmin.net</a>

#

# 主机: localhost

# 生成日期: 2004 年 06 月 18 日 11:29

# 服务器版本: 4.0.18

# PHP 版本: 4.3.4



# 数据库 : `down`





# --------------------------------------------------------



#

# 表的结构 `tx_joke`

#



CREATE TABLE `tx_joke` ( #笑话表

  `jokeID` int(10) unsigned NOT NULL auto_increment, #笑话ID

  `typeID` smallint(4) unsigned NOT NULL default '0',#笑话类别ID

  `typeName` varchar(50) NOT NULL default '',#笑话类别名称

  `jokeName` varchar(100) NOT NULL default '',#笑话名称

  `jokeContent` text NOT NULL,#笑话内容

  `visitNum` mediumint(8) unsigned NOT NULL default '0',#笑话访问次数

  `createDate` int(10) unsigned NOT NULL default '0',#笑话加入时间

  PRIMARY KEY  (`jokeID`)

) TYPE=MyISAM AUTO_INCREMENT=16985 ;



# --------------------------------------------------------



#

# 表的结构 `tx_jokecate`

#



CREATE TABLE `tx_jokecate` (#笑话类别

  `jokeCateID` smallint(5) unsigned NOT NULL default '0',#笑话类别ID

  `jokeCateName` varchar(50) NOT NULL default '',#笑话类别名称

  `jokeNum` mediumint(8) unsigned NOT NULL default '0',#笑话数量

  PRIMARY KEY  (`jokeCateID`)

) TYPE=MyISAM;

    

        */

set_time_limit(0);#设置超时。0为永不过期

mysql_connect(&quot;localhost&quot;,&quot;root&quot;,&quot;&quot<img src="images/smilies/23.gif" smilieid="206" border="0" alt="" />; #链接数据库

mysql_select_Db(&quot;down&quot<img src="images/smilies/23.gif" smilieid="206" border="0" alt="" />;



$ip '127.0.0.1';



function 
_GetIP() #取IP的函数

{

        
$ip  getenv(&quot;REMOTE_ADDR&quot<img src="images/smilies/23.gif" smilieid="206" border="0" alt="" />;

        
$ip1 getenv(&quot;HTTP_X_FORWARDED_FOR&quot<img src="images/smilies/23.gif" smilieid="206" border="0" alt="" />;

        
$ip2 getenv(&quot;HTTP_CLIENT_IP&quot<img src="images/smilies/23.gif" smilieid="206" border="0" alt="" />;

        (
$ip1) ? $ip $ip1 null ;

        (
$ip2) ? $ip $ip2 null ;

        return 
$ip;

}



if ( 
_GetIP() != $ip 

{

        exit(&
quot;Can't Run!&quot<img src="images/smilies/23.gif" smilieid="206" border="0" alt="" />; //限制在本机运行。这样别人不可以执行本程序

}





for ($i=1;$i<18500;$i++)//这里是读这外网站数据列表。我用的时候他大概有18500条。最大ID是18500

{        

        

        $url = &quot;http://joke.v111.com/jokes.asp?class_no=&quot;.$i;#读笑话的页面

        

        $File = fopen($url,'
rb');#打开读成二进制流

        if ( $File )

        {

                $Buffer = $makeFile = &quot;&quot;;

                while ($Buffer = fread($File,4096))

                {

                        $makeFile = $makeFile.$Buffer;#取出来。就是直接把上边的笑话内容读成HTML源码形式

                }

                fclose($File);

                

                preg_match(&quot;/#996600&quot;>(.*)</font>/&quot;,$makeFile,$str);#取出笑话标题

                preg_match(&quot;/valign=&quot;top&quot;(.*)</table>/s&quot;,$makeFile,$str2);#笑自内容

                //preg_macth是用正规表达式,具体到php.net看

                //提示,他的数组是从1开始的。不是0



                echo $str2[1].&quot;<br>&quot;;#输入显示插入,可以不输出

                $sql = &quot; insert into tx_joke SET createDate='
&quot;.time().&quot;',jokeID='$i',jokeName='$str[1]',jokeContent='$str2[1] &quot;; #插入到数据库中

                
mysql_query($sql);

        }

}



?>

                

                                           

 








__________________
联系方法:手机,15823625338
QQ:343441
MSN:sky2000_xiang@msn.com


88838公交网
只看该作者    顶部
 
    

相关内容


CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰广域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:010037号 联系我们 法律顾问