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 getimagesize 上传图片的长度和宽度检测代码
May 15 PHP
关于php mvc开发模式的感想
Jun 28 PHP
Mysql的Root密码忘记,查看或修改的解决方法(图文介绍)
Jun 14 PHP
基于PHP+Ajax实现表单验证的详解
Jun 25 PHP
php输出1000以内质数(素数)示例
Feb 16 PHP
php控制文件下载速度的方法
Mar 24 PHP
PHP获取某个月最大天数(最后一天)的方法
Jul 29 PHP
Yii遍历行下每列数据的方法
Oct 17 PHP
php cookie 详解使用实例
Nov 03 PHP
Laravel构建即时应用的一种实现方法详解
Aug 31 PHP
php实现的中秋博饼游戏之绘制骰子图案功能示例
Nov 06 PHP
在laravel框架中实现封装公共方法全局调用
Oct 14 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
图片自动缩小的js代码,用以防止图片撑破页面
2007/03/12 Javascript
javascript import css实例代码
2008/07/18 Javascript
javascript+iframe 实现无刷新载入整页的代码
2010/03/17 Javascript
JS下拉缓冲菜单示例代码
2013/08/30 Javascript
AngularJS入门教程之双向绑定详解
2016/08/18 Javascript
jquery PrintArea 实现票据的套打功能(代码)
2017/03/17 Javascript
JavaScript限定范围拖拽及自定义滚动条应用(3)
2017/05/17 Javascript
JS实现图片预览的两种方式
2017/06/27 Javascript
MUI实现上拉加载和下拉刷新效果
2017/06/30 Javascript
bootstrap-table实现服务器分页的示例 (spring 后台)
2017/09/01 Javascript
vue.js vue-router如何实现无效路由(404)的友好提示
2017/12/20 Javascript
vue.js移动数组位置,同时更新视图的方法
2018/03/08 Javascript
如何把vuejs打包出来的文件整合到springboot里
2018/07/26 Javascript
微信小程序之下拉列表实现方法解析(附完整源码)
2019/08/23 Javascript
JavaScript实现文件下载并重命名代码实例
2019/12/12 Javascript
给你选择Python语言实现机器学习算法的三大理由
2017/11/15 Python
Java与Python两大幸存者谁更胜一筹呢
2018/04/12 Python
用python处理MS Word的实例讲解
2018/05/08 Python
tensorflow使用神经网络实现mnist分类
2018/09/08 Python
对python3 中方法各种参数和返回值详解
2018/12/15 Python
Django 全局的static和templates的使用详解
2019/07/19 Python
Python的形参和实参使用方式
2019/12/24 Python
tensorflow-gpu安装的常见问题及解决方案
2020/01/20 Python
Python使用Paramiko控制liunx第三方库
2020/05/20 Python
python em算法的实现
2020/10/03 Python
css3背景图片透明叠加属性cross-fade简介及用法实例
2013/01/08 HTML / CSS
会走动的图形html5时钟示例
2014/04/27 HTML / CSS
韩国三大免税店之一:THE GRAND 中文免税店
2016/07/21 全球购物
shallow copy和deep copy的区别
2016/05/09 面试题
What's the difference between deep copy and shallow copy? (深拷贝与浅拷贝有什么区别)
2015/11/10 面试题
《在山的那边》教学反思
2014/02/23 职场文书
优秀电子工程系毕业生求职信
2014/05/24 职场文书
电子商务专业毕业生自荐书
2014/06/22 职场文书
数学复习课教学反思
2016/02/18 职场文书
Pytorch可视化的几种实现方法
2021/06/10 Python
如何搭建 MySQL 高可用高性能集群
2021/06/21 MySQL