基于PHP的简单采集数据入库程序【续篇】


Posted in PHP onJuly 30, 2014

在上篇文章中,我们已经采集新闻信息页的列表数据,接下来要做的操作就是从数据库中读取所需要采集的URL,进行页面抓取就行

新建一个content表

不过需要注意的一点是,不能再采用采集URL这种id递增的方法去采集,因为数据表中可能出现id断续,比如id=9,id=11,当采集到id=10的时候,URL是空白的,这样可能会导致采集到了空字段。

这里用到的一个技巧是数据库的查询语句,在我们采集完第一条数据的时候,判断数据库里是否还有大于此id的id编号,若有,读取一条,查询信息重复上面的工作。

具体代码如下:

<?php
  
  include_once("conn.php");
  $id=(int)$_GET['id'];
  $sql="select * from list where id=$id";
  $result=mysql_query($sql);
  $row=mysql_fetch_array($result);//取得对应的url地址
  $content=file_get_contents($row['url']);
  $pattern="/<dd class=\"dataWrap\">(.*)<\/dd>/iUs";
  preg_match($pattern, $content,$info);//获取内容存放info
  echo $title=$row[1]."<br/>";
  echo $content=$info[0]."<hr/>";

  //插入数据库
  $add="insert into content(title,content) value('$title','$content')";
  mysql_query($add);

  $sql2="select * from list where id>$id order by id asc limit 1";
  $result2=mysql_query($sql2);
  $row2=mysql_fetch_array($result2);//取得对应的url地址
  if($row2['id']){
    echo "<script>window.location='content.php?id=$row2[0]'</script>";
  }

?>

基于PHP的简单采集数据入库程序【续篇】

这样子我们所要的新闻内容就采集入库了,接下来只需要对数据的一些样式进行整理就行了。

PHP 相关文章推荐
如何在PHP中使用Oracle数据库(5)
Oct 09 PHP
PHP Class&amp;Object -- 解析PHP实现二叉树
Jun 25 PHP
php5.3 注意事项说明
Jul 01 PHP
PHP常用的缓存技术汇总
May 05 PHP
CI(CodeIgniter)框架介绍
Jun 09 PHP
基于GD2图形库的PHP生成图片缩略图类代码分享
Feb 08 PHP
PHP解密Unicode及Escape加密字符串
May 17 PHP
Yii2 ActiveRecord多表关联及多表关联搜索的实现
Jun 30 PHP
PHP文件操作实例总结
Sep 27 PHP
ThinkPHP3.2框架自定义配置和加载用法示例
Jun 14 PHP
浅谈PHP中的Trait使用方法
Mar 22 PHP
laravel与thinkphp之间的区别与优缺点
Mar 02 PHP
基于PHP的简单采集数据入库程序
Jul 30 #PHP
PHP中设置一个严格30分钟过期Session面试题的4种答案
Jul 30 #PHP
PHP使用Session遇到的一个Permission denied Notice解决办法
Jul 30 #PHP
PHP伪静态Rewrite设置之APACHE篇
Jul 30 #PHP
PHP return语句的另一个作用
Jul 30 #PHP
php mb_substr()函数截取中文字符串应用示例
Jul 29 #PHP
php CI框架插入一条或多条sql记录示例
Jul 29 #PHP
You might like
PHP 读取Postgresql中的数组
2013/04/14 PHP
apache配置虚拟主机的方法详解
2013/06/17 PHP
php源码的使用方法讲解
2019/09/26 PHP
tp5框架基于Ajax实现列表无刷新排序功能示例
2020/02/10 PHP
用Javascript实现UTF8编码转换成gb2312编码
2006/12/22 Javascript
Extjs Label的 fieldLabel和html属性值对齐的方法
2014/06/15 Javascript
node.js中的fs.truncate方法使用说明
2014/12/15 Javascript
JS动态创建DOM元素的方法
2015/06/09 Javascript
jQuery Validate初步体验(二)
2015/12/12 Javascript
基于百度地图实现产品销售的单位位置查看功能设计与实现
2016/10/21 Javascript
jQuery之动画效果大全
2016/11/09 Javascript
Vue-Cli中自定义过滤器的实现代码
2017/08/12 Javascript
JavaScript new对象的四个过程实例浅析
2018/07/31 Javascript
详解mpvue scroll-view自动回弹bug解决方案
2018/10/01 Javascript
nodejs基础之常用工具模块util用法分析
2018/12/26 NodeJs
layui 表单标签的校验方法
2019/09/04 Javascript
vue项目中常见问题及解决方案(推荐)
2019/10/21 Javascript
django模板语法学习之include示例详解
2017/12/17 Python
Python实现矩阵加法和乘法的方法分析
2017/12/19 Python
Zookeeper接口kazoo实例解析
2018/01/22 Python
python使用装饰器作日志处理的方法
2019/07/11 Python
windows下python虚拟环境virtualenv安装和使用详解
2019/07/16 Python
python ffmpeg任意提取视频帧的方法
2020/02/21 Python
python画图常规设置方式
2020/03/05 Python
解决Pycharm 运行后没有输出的问题
2021/02/05 Python
HTML5地理定位与第三方工具百度地图的应用
2016/11/17 HTML / CSS
美国网上购买眼镜:Eyeconic
2017/07/29 全球购物
美国孕妇装品牌:Destination Maternity
2018/02/04 全球购物
2014道德模范事迹材料
2014/02/16 职场文书
中医学专业自荐信范文
2014/04/01 职场文书
学生实习证明模板汇总
2014/09/25 职场文书
信用卡工资证明范本
2014/10/17 职场文书
护士自荐信范文
2015/03/25 职场文书
2015年个人招商工作总结
2015/04/25 职场文书
React Native项目框架搭建的一些心得体会
2021/05/28 Javascript
美国运营商 T-Mobile 以 117.83Mb/s 的速度排第一位
2022/04/21 数码科技