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里的JS打印函数
Oct 09 PHP
xajax写的留言本
Nov 25 PHP
使用adodb lite解决问题
Dec 31 PHP
再次研究下cache_lite
Feb 14 PHP
解决163/sohu/sina不能够收到PHP MAIL函数发出邮件的问题
Mar 13 PHP
php在线代理转向代码
May 05 PHP
Eclipse中php插件安装及Xdebug配置的使用详解
Apr 25 PHP
json的键名为数字时的调用方式(示例代码)
Nov 15 PHP
php类自动加载器实现方法
Jul 28 PHP
两种php去除二维数组的重复项方法
Nov 04 PHP
php自定义函数br2nl实现将html中br换行符转换为文本输入中换行符的方法【与函数nl2br功能相反】
Feb 17 PHP
PHP实现的文件上传类与用法详解
Jul 05 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原理之异常机制深入分析
2010/08/08 PHP
PHP中的gzcompress、gzdeflate、gzencode函数详解
2014/07/29 PHP
javascript 表格排序和表头浮动效果(扩展SortTable)
2009/04/07 Javascript
JS 控制非法字符的输入代码
2009/12/04 Javascript
jquery自定义属性(类型/属性值)
2013/05/21 Javascript
jQuery 滑动方法slideDown向下滑动元素
2014/01/16 Javascript
javascript实现多级联动下拉菜单的方法
2015/02/06 Javascript
简述JavaScript对传统文档对象模型的支持
2015/06/16 Javascript
JS基于clipBoard.js插件实现剪切、复制、粘贴
2016/05/03 Javascript
JS脚本实现动态给标签控件添加事件的方法
2016/06/02 Javascript
详解javascript事件绑定使用方法
2016/10/20 Javascript
详解本地Node.js服务器作为api服务器的解决办法
2017/02/28 Javascript
JS HTML图片显示Canvas 压缩功能
2017/07/21 Javascript
基于JavaScript实现百度搜索框效果
2020/06/28 Javascript
详解Angular-cli生成组件修改css成less或sass的实例
2017/07/27 Javascript
webpack引入eslint配置详解
2018/01/22 Javascript
element-ui upload组件多文件上传的示例代码
2018/10/17 Javascript
Vue scrollBehavior 滚动行为实现后退页面显示在上次浏览的位置
2019/05/27 Javascript
微信小程序入口场景的问题集合与相关解决方法
2019/06/26 Javascript
vue-cli 关闭热更新操作
2020/09/18 Javascript
[01:11:48]Fnatic vs IG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
Python中用Spark模块的使用教程
2015/04/13 Python
Python结巴中文分词工具使用过程中遇到的问题及解决方法
2017/04/15 Python
Python数据分析中Groupby用法之通过字典或Series进行分组的实例
2017/12/08 Python
NumPy 如何生成多维数组的方法
2018/02/05 Python
浅谈keras保存模型中的save()和save_weights()区别
2020/05/21 Python
解决keras模型保存h5文件提示无此目录问题
2020/07/01 Python
HTML5打开手机扫码功能及优缺点
2017/11/27 HTML / CSS
Martinelli官方商店:西班牙皮鞋和高跟鞋品牌
2019/07/30 全球购物
Java基础面试题
2012/11/02 面试题
反邪教宣传工作方案
2014/05/07 职场文书
公司晚会策划方案
2014/05/17 职场文书
五年级小学生评语
2014/12/26 职场文书
公司车辆管理制度
2015/08/04 职场文书
Python matplotlib安装以及实现简单曲线的绘制
2022/04/26 Python