PHP 采集心得技巧


Posted in PHP onMay 15, 2009

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代码:

if(@copy($url,$newurl)){ 
echo 'ok'; 
}

在论坛上以前还发过一个图片下载函数这会也放上来给大家

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.入库前一定要作好判断,检查内容的合法,过滤不必要的字符串。

PHP 相关文章推荐
PHP开发文件系统实例讲解
Oct 09 PHP
基于mysql的bbs设计(二)
Oct 09 PHP
一个PHP日历程序
Dec 06 PHP
php 用sock技术发送邮件的函数
Jul 21 PHP
php2html php生成静态页函数
Dec 08 PHP
PHP 类型转换函数intval
Jun 20 PHP
php求两个目录的相对路径示例(php获取相对路径)
Mar 27 PHP
php判断是否为ajax请求的方法
Nov 29 PHP
PHP静态成员变量和非静态成员变量详解
Feb 14 PHP
PHP htmlspecialchars_decode()函数用法讲解
Mar 01 PHP
goto语法在PHP中的使用教程
Sep 17 PHP
PHP正则表达式之RCEService回溯
Apr 11 PHP
DISCUZ 论坛管理员密码忘记的解决方法
May 14 #PHP
PHP获取当前文件所在目录 getcwd()函数
May 13 #PHP
php 购物车实例(申精)
May 11 #PHP
PHP 编写的 25个游戏脚本
May 11 #PHP
PHPMyAdmin 快速配置方法
May 11 #PHP
PHP 在线翻译函数代码
May 07 #PHP
PHP SQLite类
May 07 #PHP
You might like
福利彩票幸运号码自动生成器
2006/10/09 PHP
PHP中获取时间的下一周下个月的方法
2014/03/18 PHP
php setcookie函数的参数说明及其用法
2014/04/20 PHP
PHP高级编程实例:编写守护进程
2014/09/02 PHP
Laravel框架自定义分页样式操作示例
2020/01/26 PHP
用js实现控制内容的向上向下滚动效果
2007/06/26 Javascript
offsetParent 算法分析
2010/04/05 Javascript
JS代码同步文本框内容的实例方法
2013/07/12 Javascript
深入理解Javascript中的循环优化
2013/11/09 Javascript
js取得html iframe中的元素和变量值
2014/06/30 Javascript
JavaScript删除数组元素的方法
2015/03/20 Javascript
jquery trigger实现联动的方法
2016/02/29 Javascript
使用Angular.js实现简单的购物车功能
2016/11/21 Javascript
js实现鼠标拖动功能
2017/03/20 Javascript
使用JavaScript根据图片获取条形码的方法
2017/07/04 Javascript
jQuery实现QQ空间汉字转拼音功能示例
2017/07/10 jQuery
Node.js中流(stream)的使用方法示例
2017/07/16 Javascript
基于vue-element组件实现音乐播放器功能
2018/05/06 Javascript
Layui实现数据表格默认全部显示(不要分页)
2019/10/26 Javascript
bootstrap-paginator服务器端分页使用方法详解
2020/02/13 Javascript
[03:20]2015国际邀请赛全明星表演赛
2015/08/08 DOTA
在树莓派2或树莓派B+上安装Python和OpenCV的教程
2015/03/30 Python
使用python将图片按标签分入不同文件夹的方法
2018/12/08 Python
Python实现分段线性插值
2018/12/17 Python
Python with关键字,上下文管理器,@contextmanager文件操作示例
2019/10/17 Python
pytorch获取模型某一层参数名及参数值方式
2019/12/30 Python
Python实现定时监测网站运行状态的示例代码
2020/09/30 Python
CSS3绘制六边形的简单实现
2016/08/25 HTML / CSS
CSS3实现各种图形的示例代码
2016/10/19 HTML / CSS
深入探究HTML5的History API
2015/07/09 HTML / CSS
联想德国官网:Lenovo Germany
2018/07/04 全球购物
在使用非全零作为空指针内部表达的机器上, NULL是如何定义
2014/11/09 面试题
《追风筝的人》:人心中的成见是座大山,但请不忘初心
2019/11/15 职场文书
Pandas||过滤缺失数据||pd.dropna()函数的用法说明
2021/05/14 Python
Django使用redis配置缓存的方法
2021/06/01 Redis
使用pycharm运行flask应用程序的详细教程
2021/06/07 Python