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

在上篇基于PHP采集数据入库程序(二) 中提到采集新闻信息页的列表数据,接下来讲讲关于采集新闻具体内容

这是上篇博客的最终数据表截图:

接下来要做的操作就是从数据库中读取所需要采集的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采集数据入库程序(二),布布扣,bubuko.com

时间: 2024-08-24 06:42:10

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

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

前几天有一朋友要我帮做一个采集新闻信息的程序,抽了点时间写了个PHP版本的,随笔记录下. 说到采集,无非就是远程获取信息->提取所需内容->分类存储->读取->展示 也算是简单"小偷程序"的加强版吧 下面是对应核心代码(别拿去做坏事哦^_^) 所要采集的内容是某游戏网站上的公告,如下图: 可先利用file_get_contents和简单正则获取基本页面信息 整理下基本信息,采集入库: <?php include_once("conn.php&qu

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

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

Flume简介与使用(二)——Thrift Source采集数据

Flume简介与使用(二)——Thrift Source采集数据 继上一篇安装Flume后,本篇将介绍如何使用Thrift Source采集数据. Thrift是Google开发的用于跨语言RPC通信,它拥有功能强大的软件堆栈和代码生成引擎,允许定义一个简单的IDL文件来生成不同语言的代码,服务器端和客户端通过共享这个IDL文件来构建来完成通信. Flume的Thrift Source是其实现的众多Source中的一个,Flume已经实现了服务器端,因此我们可以用任意自己熟悉的语言编写自己的Th

采集入库程序原理

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

Creating Dialogbased Win32 Application (2) / 创建基于对话框的Win32应用程序(二)Button的应用、新建子窗体 / Win32, VC++, Windows

创建基于对话框的Win32应用程序(二) —— Button的应用.新建子窗体 可以发现上一节创建的窗体中,点击OK和Cancel两个按钮是没有任何反应的.现在我们来为他们添加退出对话框的功能. 6.首先定义宏替换如下: 7.再在回调函数(Dlg_Proc)中调用响应消息的函数(Dlg_OnCommand)如下: 8.由于HANDLE_WM_COMMAND是在windowsx.h头文件中定义的,故添加其引用. 9.接下来定义刚才调用的消息响应函数(Dlg_OnCommand)如下: 其中IDOK

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

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

ADO.NET入门教程(二)了解.NET数据提供程序

摘要 在上一篇文章<你必须知道的ADO.NET(一) 初识ADO.NET>中,我们知道ADO.NET的两大核心组件分别是Data Provider和DataSet.如果说DataSet是ADO.NET的心脏,那么Data Provider绝对是ADO.NET的左臂右膀.Data Provider提供了访问外部数据数据源的可能性,而且外部的数据源是多样的.本文将详细说明.NET数据提供程序的作用以及如何访问不同的数据源. 目录 什么是.NET数据提供程序? .NET数据提供程序的核心对象 其他重

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

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

TDH大数据平台数据入库方案

一.数据入库方式 目前批量数据入库TDH大数据平台主要有如下几种方式 1.手工入录 一些静态表手工维护的数据,可以直接采用insert导入,或者使用waterdrop客户端工具导入,只适用少数据量的导入和更新 2.dblink TDH inceptor支持建立dblink直接连接db2,oracle,mysql等关系数据库,对于一些数据量不大的静态表,手工维护的表,可以通过建立dblink的方式获取数据 优点:简单方便 缺点:1)对大数据量的表,效率较差 2)初次使用相应数据库的dblink时,