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 伪静态隐藏传递参数名的四种方法
Feb 22 PHP
php下关于Cannot use a scalar value as an array的解决办法
Aug 08 PHP
php中取得文件的后缀名?
Feb 20 PHP
获取php页面执行时间,数据库读写次数,函数调用次数等(THINKphp)
Jun 03 PHP
PHP多进程编程实例
Oct 15 PHP
PHP将进程作为守护进程的方法
Mar 19 PHP
php将数组存储为文本文件方法汇总
Oct 28 PHP
php微信支付接口开发程序
Aug 02 PHP
php脚本守护进程原理与实现方法详解
Jul 20 PHP
ThinkPHP框架实现的邮箱激活功能示例
Jun 15 PHP
PHP中的empty、isset、isnull的区别与使用实例
Mar 22 PHP
tp5.1框架数据库子查询操作实例分析
May 26 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
详细介绍:Apache+PHP+MySQL配置攻略
2006/09/05 PHP
php截取中文字符串函数实例
2015/02/23 PHP
PHP读取汉字的点阵数据
2015/06/22 PHP
PHP中大括号'{}'用法实例总结
2017/02/08 PHP
使用JavaScript 实现对象 匀速/变速运动的方法
2013/05/08 Javascript
JS随机生成不重复数据的实例方法
2013/07/17 Javascript
jQuery热气球动画半透明背景的后台登录界面代码分享
2015/08/28 Javascript
总结在前端排序中遇到的问题
2016/07/19 Javascript
手机端点击图片放大特效PhotoSwipe.js插件实现
2016/08/24 Javascript
bootstrap table小案例
2016/10/21 Javascript
Angular.js中下拉框实现渲染html的方法
2017/06/18 Javascript
使用 jQuery 实现表单验证功能
2017/07/05 jQuery
Nodejs libuv运行原理详解
2019/08/21 NodeJs
关于Layui Table隐藏列问题
2019/09/16 Javascript
vue实现全匹配搜索列表内容
2019/09/26 Javascript
微信小程序实现日历小功能
2020/11/18 Javascript
[09:34]2018DOTA2国际邀请赛寻真——永不放弃的iG
2018/08/14 DOTA
比较详细Python正则表达式操作指南(re使用)
2008/09/06 Python
python操作MongoDB基础知识
2013/11/01 Python
Redis使用watch完成秒杀抢购功能的代码
2018/05/07 Python
详解Python3的TFTP文件传输
2018/06/26 Python
Linux CentOS Python开发环境搭建教程
2018/11/28 Python
python实现烟花小程序
2019/01/30 Python
python 为什么说eval要慎用
2019/03/26 Python
python+requests接口压力测试500次,查看响应时间的实例
2020/04/30 Python
前端实现背景虚化但内容清晰且自适应 的实例代码
2019/08/01 HTML / CSS
奥兰多迪士尼门票折扣:Undercover Tourist
2018/07/09 全球购物
大学生个人简历中的自我评价
2013/12/27 职场文书
母亲节感恩寄语
2014/02/21 职场文书
运动会广播稿诗歌版
2014/09/12 职场文书
2015届本科毕业生自我鉴定
2014/09/27 职场文书
裁员通知
2015/04/25 职场文书
2015年乡镇妇联工作总结
2015/05/19 职场文书
Golang中interface{}转为数组的操作
2021/04/30 Golang
Redis 彻底禁用RDB持久化操作
2021/07/09 Redis
单机多实例部署 MySQL8.0.20
2022/05/15 MySQL