+ -
当前位置:首页 → 问答吧 → PHP采集代码

PHP采集代码

时间:2009-11-02

来源:互联网

思路:

采集程序的思路很简单大体可以分为以下几个步骤:
    1.获取远程文件源代码(file_get_contents或用fopen).
       2.分析代码得到自己想要的内容(这里用正规匹配,一般是得到分页)。
3.跟根得到的内容进行下载入库等操作。

在这里第二步有可能要重复的操作好几次,比如说要先分析一下分页地址,在分析一下内页的内容才能取得我们想要的东西。

代码:

记的以前发部过部分的代码今天我在这里在简单的发部一下
复制PHP内容到剪贴板
PHP代码:
@$nl=file_get_contents($rs['url']);//抓取远程内容
preg_match_all("/var url = \"gameswf\/(.*?)\.swf\";/is",$nl,$connect);//进行正规匹配取得自己要的内容
mysql_query("insert ......插入数据库部分");

上面的代码就是所有采集要用到的代码了,当然大家也可以用fope来作,我个人喜欢用file_get_contents。

下面在共享一下我的下载图片flash到本地的办法,太简单了两行代码
复制PHP内容到剪贴板
PHP代码:
if(@copy($url,$newurl)){
echo 'ok';
}

在论坛上以前还发过一个图片下载函数这会也放上来给大家
复制PHP内容到剪贴板
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;
}

共享一下个人的采集心德:

1.不采那些作防盗链了的站,其实可以作假来路但是这样的站采集成本太高

2.采集尽量快的站,最好在本地进行采集

3.采集时有很多时候可以先把一部分数据存入数据库,等以后进行下一步的处理。

4.采集的时候一定要作好出错处理,我一般都是如果采集三次没有成功就跳过。以前经常就因为一条内容不能采就卡在那里一直的采。

5.入库前一定要作好判断,检查内容的合法,过滤不必要的字符串。

    思路图一


=700) window.open('http://bbs.phpchina.com/attachments/month_0811/20081128_f2566ddc9eaf50a620fag2ibZWVc6cRP.gif');" onload="if(this.offsetWidth>'700')this.width='700';if(this.offsetHeight>'700')this.height='700';" >
思路二
=700) window.open('http://bbs.phpchina.com/attachments/month_0811/20081128_510f0c018086273bdb87UrqhLkTF6gjX.gif');" onload="if(this.offsetWidth>'700')this.width='700';if(this.offsetHeight>'700')this.height='700';" >
思路三
=700) window.open('http://bbs.phpchina.com/attachments/month_0811/20081128_e963805fe2326fd5a3b9e2kbBuNCye4u.gif');" onload="if(this.offsetWidth>'700')this.width='700';if(this.offsetHeight>'700')this.height='700';" >

作者: liuyi19870   发布时间: 2009-11-02

谢谢.....

作者: whl1295a   发布时间: 2009-11-03

good job

作者: power   发布时间: 2009-11-03

作者: anton   发布时间: 2009-11-03

八错

作者: q60605   发布时间: 2009-11-03

很不错的代码,多谢分享!

作者: smarster   发布时间: 2009-11-04

  顶

作者: q88504561   发布时间: 2009-11-04

还不错

作者: php_storm   发布时间: 2009-11-04

不错。学习了

作者: linjian   发布时间: 2009-11-05

hao a

作者: 5555   发布时间: 2009-11-07

呵呵!

作者: elite   发布时间: 2009-11-07

kkkkkkkkkkkkkkkkkkkkkkkkk

作者: test1112   发布时间: 2009-11-07

谢谢分享!!!!!!!!!!

作者: wds2008   发布时间: 2009-11-07

好东西

作者: waterb   发布时间: 2009-11-07

作者: daniel   发布时间: 2009-11-20

作者: daniel   发布时间: 2009-11-20

谢谢楼主分享

作者: ezhuanyong1   发布时间: 2009-11-20

谢谢楼主分享

作者: ezhuanyong1   发布时间: 2009-11-20

作者: evan2884   发布时间: 2009-11-23

作者: ygxs88   发布时间: 2009-12-07

不对哦!

作者: yujianrong   发布时间: 2010-01-19

热门下载

更多