基于PHP采集数据入库程序(一)

前几天有一朋友要我帮做一个采集新闻信息的程序,抽了点时间写了个PHP版本的,随笔记录下。

说到采集,无非就是远程获取信息->提取所需内容->分类存储->读取->展示

也算是简单"小偷程序"的加强版吧

下面是对应核心代码(别拿去做坏事哦^_^)

所要采集的内容是某游戏网站上的公告,如下图:

可先利用file_get_contents和简单正则获取基本页面信息

整理下基本信息,采集入库:

<?php
    include_once("conn.php");

     if($_GET[‘id‘]<=8&&$_GET[‘id‘]){
         $id=$_GET[‘id‘];
        $conn=file_get_contents("http://www.93moli.com/news_list_4_$id.html");//获取页面内容

    $pattern="/<li><a title=\"(.*)\" target=\"_blank\" href=\"(.*)\">/iUs";//正则

    preg_match_all($pattern, $conn, $arr);//匹配内容到arr数组

    //print_r($arr);die;

    foreach ($arr[1] as $key => $value) {//二维数组[2]对应id和[1]刚好一样,利用起key
        $url="http://www.93moli.com/".$arr[2][$key];
        $sql="insert into list(title,url) value (‘$value‘, ‘$url‘)";
        mysql_query($sql);

        //echo "<a href=‘content.php?url=http://www.93moli.com/$url‘>$value</a>"."<br/>";
    }
     $id++;
     echo "正在采集URL数据列表$id...请稍后...";
     echo "<script>window.location=‘list.php?id=$id‘</script>";

 }else{
     echo "采集数据结束。";
 }

?>

conn.php是数据库连接文件

list.php是本页面

由于要采集的数据是分页显示的,且页面地址是规律递增,所以我用了js跳转代码,利用id传值控制采集的页数,也避免了for循环数目过大。

轻轻松松数据入库,下篇博客写关于具体url采集信息的过程。

基于PHP采集数据入库程序(一)

时间: 2024-11-06 07:22:36

基于PHP采集数据入库程序(一)的相关文章

基于PHP采集数据入库程序(二)

在上篇基于PHP采集数据入库程序(二) 中提到采集新闻信息页的列表数据,接下来讲讲关于采集新闻具体内容 这是上篇博客的最终数据表截图: 接下来要做的操作就是从数据库中读取所需要采集的URL,进行页面抓取就行 新建一个content表 不过需要注意的一点是,不能再采用采集URL这种id递增的方法去采集,因为数据表中可能出现id断续,比如id=9,id=11,当采集到id=10的时候,URL是空白的,这样可能会导致采集到了空字段. 这里用到的一个技巧是数据库的查询语句,在我们采集完第一条数据的时候,

Qt简单项目——基于TCP的数据转发程序(一)

老师托我做个服务器的程序,用来转发客户之间的消息.客户是ZigBee网络节点和监控中心. 业务描述: 每个ZigBee节点都具有厂别号.编号.每个监控中心也具有厂别号.序号.服务器Ip固定不变,但ZigBee节点和监控中心的Ip地址会动态变动,所以需要一个服务器做数据转发. 业务逻辑: 把ZigBee节点数据转发给监控中心时,根据ZigBee节点的厂别号转发给对应厂别的监控中心.如果是第一次连接服务器,在服务器端的程序上节点列表中显示该节点序号和厂别信息.反则直接转发. 把监控中心数据转发给Zi

采集入库程序原理

php开发通用采集程序(一) php采集程序构建基本步骤:采集程序是什么?获取远程数据(文字.图片.图片)并快速保存到本地或指定地址.如天气预报(小偷程序):远程获取-->替换内容-->展示给用户如实时更新的新闻(采集内容):远程获取-->提取内容-->分类存储-->读取内容--->展示内容 *************************设计PHP采集入库UML 列表正则: 终端正则:**************************file_get_conten

微信小程序前台的用户数据入库(后台Laravel)

首先 我们可以看到微信小程序官方 文档 wx.login api-login.jpg 通过此图 我们知道 前台要传 一个 code给后台,后台拿到code 并结合appid和appsecret请求微信接口服务,拿到openid和session_key 查阅文档 我们可以清楚知道 后台要获得用户数据 就需要前台除了传code 还需要传 iv和 encryptedData iv和encryptedData 后台拿到这两个 并结合拿code去请求得到的session_key便可以解密获得用户数据 包括

C#+HtmlAgilityPack+XPath带你采集数据(以采集天气数据为例子)

转自原文C#+HtmlAgilityPack+XPath带你采集数据(以采集天气数据为例子) 阅读目录 1.HtmlAgilityPack简介 2.XPath技术介绍与使用 3.采集天气网站案例 4.资源 第一次接触HtmlAgilityPack是在5年前,一些意外,让我从技术部门临时调到销售部门,负责建立一些流程和寻找潜在客户,最后在阿里巴巴找到了很多客户信息,非常全面,刚开始是手动复制到Excel,是真尼玛的累,虽然那个时候C#还很菜,也想能不能通过程序来批量获取(所以平时想法要多才好).几

项目感悟 基于8051的数据采集系统-总纲

博文的内容是感想,是我在做一个小作品的时候记录下来的感想.现在将其整理好,分享出来. 我写博文的纲领是隐恶扬善,所以一些不好的事情,闭口不说.但别人对我的好,要尽力写出来. 虽然我不是大牛,感想有时显得有些幼稚,但是我依然希望你能通过我的感想得到一些启发,少走一些弯路. 博文的宗旨是:隐恶扬善. 作品名称:基于8051的数据采集系统 简介:下位机用 8051新手开发板,传感器采集需要的数据,通过USB通信接口发送给上位机,上位机的系统是win 7,用C#的Winform写的串口调试程序接收数据.

记录一次帮策划写的基于VBA的数据转化工具

由于策划计算的表格结构和程序实际使用的数据表结构不一定一致,因此有时候经常需要做数据转化.把策划自己的表格转成程序需要的格式,然后再导入数据库.这次也是策划有个表,里面有多个字段分别表示多个属性,但是程序考虑到通用,不想一个属性增加一个字段,因此想用一个字段,然后采用JSON格式来表示所有属性. 因此,帮策划写了个VBA实现多个字段合并成JSON的.这个VBA可以通过Ctrl表格来配置: 源表名:策划表的名字 目标表名:程序表的名字 字段映射:程序表的字段名对应策划表的字段名.目前支持字段合并(

开源一个基于nio的java网络程序

因为最近要从公司离职,害怕用nio写的网络程序没有人能看懂(或许是因为写的不好吧),就调整成了mina(这样大家接触起来非常方便,即使没有socket基础,用起来也不难),所以之前基于nio写的网络程序就开放出来好了! 写的比较挫,大家见谅! 首先是PollServer类,主要处理select,做网络事件的监听和基于FutureTask的数据发送,代码如下: package gs.gate; import gs.gate.handle.ClientHandle; import java.util

第三章 数据决定程序结构

本章主要讲解一个合适的数据结构对一个程序的重要性.一个好的数据类型能够节省开发时间也能够节省内存的消耗. 文末总结一下四点: 1.使用数组重新编写重复代码.在现在的变成中主要用到的是list.map之类的数据结构来代替数组. 2.封装复杂结构.抽象bean. 3.尽可能使用高级工具.超文本.名字-值对.电子表格.数据库.编程语言等都是特定问题领域中的强大的工具.由于本书出版的年份较早,这里提到的基本都是日常开发需要用到的.比较新的工具redis在现在工程中刚接触到.也是基于键-值对的形式存储数据