PHP解析网页Table布局并构建查询系统项目实战

我跟你讲标题一口气读完PGOne,少侠要不你取个短小精悍的标题留言

时至今日,互联网上还存在不少诞生超过5年的网站。5年不做重大革新的网站,相当于人类60岁不注意身体。老骥伏枥,志在千里。烈士暮年,壮心不已。由于网站数据的不可替代性,仍然顽强地坚挺在第一线供人们使用

例如,有时候连查询功能也没有

网站它的内心:不是我不想拥抱变化,那嵌套Table布局无人能战啊。而且过了那么多年,革新需要很大的勇气和决心

作为不会编程技术的普通人,一个个点击翻页查看吧,毕竟这个网站才8页。假如某一个天一个网站有800页,要找到具体到某个关键字的新闻,那手工翻页可能让你怀疑人生。作为开发者,我们靠程序“”偷懒",哦不——是改变生活

科学技术才是第一生产力

这里分三步,首先我们要从获取数据信息,其次将数据保存到本地数据库,再通过程序构建系统查询。

1-获取数据信息

我们想要获取的数据,没有查询功能

通过浏览器F12查看页面HTML结构。我们发现这是一个典型的嵌套Table布局,在本地创建静态HTML来展示最内层结构

看起来很清爽是不,注意我们这只是9层嵌套table最内层,整个布局要在外层嵌套9级table啊喂,而且咱这是纯HTML。维护时带来灾难的嵌套table布局。

我们要数据

通过使用simple_html_dom的库我们不必关注外层

获取下标为8的table,因为程序中下标从0开始,这是第九个table

看看页面上带来了什么

获取下标为9的数据,

获取到了第一条,这一行竟然是一个table标签。现在如果这要写HTML估计会被打死,冗余标签太多

通过浏览器F12查看页面DOM结构

为了更清晰获取数据,我们在本地构建这一个HTML结构

我们发现数据在a标签内的文本和href属性,日期在table内第二个td的文本,所以

Coding..

页面$data显示结果

将上面的代码改写成函数getTr,循环即可获取这一页中所有数据

showVal($data)显示结果

然而这只是第一页的数据,还有很多页。这时一种方法是针对页码进行类似上面的文档标签解析;另一种,我们观察到第一页520.html,第二页为520_2.html,第三页为520_3.html,所以只用改变访问页面链接地址就可以获取到所有记录

最终获取所有新闻的主函数。默认获取第一页520.html的数据,然后通过array_merge追加每一页的数据到数组$data后

这时我们已经取到全部的数据。

2-保存到本地数据库

设计数据库表。可通过SQL语句创建或者在Navicat新建表填写字段

连接数据库获取数据库全局变量设置为$mysqli

现在将我们获取的数据存入到数据库了,在//TO DO后面加入下列函数。我们获取的数据是在二维数组里,通过foreach循环获取每一行存入到数据库中

3-构建查询系统

建立静态HTML页面search.html,这是PHP开发的基础。少侠你HTML结构不会写,咋用PHP改写,我劝你还是先学HTML几天吧。将这个文件复制一份,改名search.php

最后达到的查询效果,我们把搜索的结果红色高亮

对比之前的静态页面,和我们改写后的PHP页面,有没有悟到点什么。HTML是静态展示型页面的基础,而PHP是服务器动态编程语言,将存放MySQL中的数据,通过PHP语句组合成。试想,如果有10个相似的HTML页面,你只能复制10份代码,而PHP可以通过函数改变参数,只要一个页面就可以生成无数个HTML页面

Apache服务器通过PHP解析器,解析.php文件,最终呈现的结果是HTML文件。用户通过浏览器看到的也是解析之后的结果。按一下F12看到的HTML代码就是了

通过这个案例,对于互联网上任何一个网站,你都可以获取公开的数据,然后构建自己的专属系统,技术改变生活

是不是该点赞一波了

源码下载

100m.fun/download/P2018_101.rar

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180123G0P59I00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券