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 相关文章推荐
在任意字符集下正常显示网页的方法二(续)
Apr 01 PHP
PHP 身份验证方面的函数
Oct 11 PHP
php中使用redis队列操作实例代码
Feb 07 PHP
PHP中对缓冲区的控制实现代码
Sep 29 PHP
php发送邮件的问题详解
Jun 22 PHP
浅析PHP关键词替换的类(避免重复替换,保留与还原原始链接)
Sep 22 PHP
php获取文件名称和扩展名的方法
Feb 07 PHP
详解laravel安装使用Passport(Api认证)
Jul 27 PHP
Yii框架通过请求组件处理get,post请求的方法分析
Sep 03 PHP
laravel-admin 实现给grid的列添加行数序号的方法
Oct 08 PHP
php+iframe 实现上传文件功能示例
Mar 04 PHP
php操作redis命令及代码实例大全
Nov 19 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
php+mysql数据库查询实例
2015/01/21 PHP
php中header跳转使用include包含解决参数丢失问题
2015/05/08 PHP
PHP使用http_build_query()构造URL字符串的方法
2016/04/02 PHP
php简单实现多维数组排序的方法
2016/09/30 PHP
tp5(thinkPHP5)框架实现多数据库查询的方法
2019/01/10 PHP
php设计模式之正面模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
js文件中调用js的实现方法小结
2009/10/23 Javascript
jQuery中after的两种用法实例
2013/07/03 Javascript
JS实现点击链接取消跳转效果的方法
2014/01/24 Javascript
JavaScript字符串对象split方法入门实例(用于把字符串分割成数组)
2014/10/16 Javascript
jquery 设置style:display的方法
2015/01/29 Javascript
Javascript设计模式理论与编程实战之简单工厂模式
2015/11/03 Javascript
百度地图给map添加右键菜单(判断是否为marker)
2016/03/04 Javascript
JavaScript快速切换繁体中文和简体中文的方法及网站支持简繁体切换的绝招
2016/03/07 Javascript
实例浅析js的this
2016/12/11 Javascript
React-router v4 路由配置方法小结
2017/08/08 Javascript
element-ui循环显示radio控件信息的方法
2018/08/24 Javascript
vue环形进度条组件实例应用
2018/10/10 Javascript
vue过滤器用法实例分析
2019/03/15 Javascript
vue 2.5.1 源码学习 之Vue.extend 和 data的合并策略
2019/06/04 Javascript
Vue实现日历小插件
2019/06/26 Javascript
vue实现输入一位数字转汉字功能
2019/12/13 Javascript
Nuxt.js的路由跳转操作(页面跳转nuxt-link)
2020/11/06 Javascript
[52:37]完美世界DOTA2联赛循环赛 Forest vs DM BO2第一场 10.29
2020/10/29 DOTA
go和python调用其它程序并得到程序输出
2014/02/10 Python
python基于Tkinter库实现简单文本编辑器实例
2015/05/05 Python
Python的Flask框架中配置多个子域名的方法讲解
2016/06/07 Python
Python中的异常处理相关语句基础学习笔记
2016/07/11 Python
Python基于pillow判断图片完整性的方法
2016/09/18 Python
python记录程序运行时间的三种方法
2017/07/14 Python
基于PyQt4和PySide实现输入对话框效果
2019/02/27 Python
python和JavaScript哪个容易上手
2020/06/23 Python
说一下mysql, oracle等常见数据库的分页实现方案
2012/09/29 面试题
电子商务专业个人的自我评价
2013/11/19 职场文书
校园联欢晚会主持词
2014/03/17 职场文书
科学育儿宣传标语
2014/10/08 职场文书