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 相关文章推荐
实用函数7
Nov 08 PHP
php cout<<的一点看法
Jan 24 PHP
php数组函数序列之array_unshift() 在数组开头插入一个或多个元素
Nov 07 PHP
Youku 视频绝对地址获取的方法详解
Jun 26 PHP
php中操作memcached缓存进行增删改查数据的实现代码
Aug 15 PHP
PHP下SSL加密解密、验证、签名方法(很简单)
Jun 28 PHP
php 解决扫描二维码下载跳转问题
Jan 13 PHP
ThinkPHP3.2框架使用addAll()批量插入数据的方法
Mar 16 PHP
浅谈PHP发送HTTP请求的几种方式
Jul 25 PHP
php实现商城购物车的思路和源码分析
Jul 23 PHP
PHP isset()及empty()用法区别详解
Aug 29 PHP
php远程请求CURL案例(爬虫、保存登录状态)
Apr 01 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
DOMXML函数笔记
2006/10/09 PHP
PHP中路径问题的解决方案
2006/10/09 PHP
Codeigniter出现错误提示Error with CACHE directory的解决方案
2014/06/12 PHP
PHP实现登录搜狐广告获取广告联盟数据的方法【附demo源码】
2016/10/14 PHP
Javascript 更新 JavaScript 数组的 uniq 方法
2008/01/23 Javascript
img标签中onerror用法
2009/08/13 Javascript
解读JavaScript中 For, While与递归的用法
2013/05/07 Javascript
JQuery判断子iframe何时加载完成解决方案
2013/08/20 Javascript
PHP抓取HTTPS内容和错误处理的方法
2016/09/30 Javascript
JavaScript数据结构之数组的表示方法示例
2017/04/12 Javascript
vue 里面使用axios 和封装的示例代码
2017/09/01 Javascript
JS与HTML结合实现流程进度展示条思路详解
2017/09/03 Javascript
详解JS函数stack size计算方法
2018/06/18 Javascript
javascript导出csv文件(excel)的方法示例
2019/08/25 Javascript
node.js Promise对象的使用方法实例分析
2019/12/26 Javascript
JS数组及对象遍历方法代码汇总
2020/06/16 Javascript
[02:59]DOTA2完美大师赛主赛事第三日精彩集锦
2017/11/25 DOTA
Python基类函数的重载与调用实例分析
2015/01/12 Python
python生成器generator用法实例分析
2015/06/04 Python
python高手之路python处理excel文件(方法汇总)
2016/01/07 Python
python matplotlib绘图,修改坐标轴刻度为文字的实例
2018/05/25 Python
详解Python给照片换底色(蓝底换红底)
2019/03/22 Python
在python Numpy中求向量和矩阵的范数实例
2019/08/26 Python
Django分组聚合查询实例分享
2020/04/29 Python
Python xmltodict模块安装及代码实例
2020/10/05 Python
css3背景_动力节点Java学院整理
2017/07/11 HTML / CSS
Canvas引入跨域的图片导致toDataURL()报错的问题的解决
2018/09/19 HTML / CSS
介绍一下SQL注入攻击的种类和防范手段
2012/02/18 面试题
Java基础面试题
2014/07/19 面试题
幼儿园美术教学反思
2014/01/31 职场文书
村级四风对照检查材料
2014/08/24 职场文书
工程承包协议书范本
2014/09/29 职场文书
当幸福来敲门英文观后感
2015/06/01 职场文书
2019求职信:应届生求职信范文
2019/04/24 职场文书
ElementUI实现el-form表单重置功能按钮
2021/07/21 Javascript
动态规划之使用备忘录来改进Javascript函数
2022/04/07 Javascript