关于Simple_html_dom的小应用

  今天一同学给我推荐了本书,说是刚出不久,内容还不错,是心灵鸡汤类的书,于是按捺不住就像在网上下一本,可是木有资源肿么办。只有在线看的,作为一个准码农,所以甭废话了,咱得用代码解决问题对吧……

1.工欲善其事必先利其器

  首先你得有个工具用吧,别想我之前似得抓个网页,就写了好多的$pattern去挨个匹配标签,作为伪程序员那哪行啊,对吧,咱得学着它Simple_html_dom

专门解析HTML文档的一东西,超好用的哦~。Simple_html_dom是什么东西在咱博客园上就有怎么用的博客,在这不做赘述。

2.代码详解

  啥也甭说,还是代码说话给力,以下是抓去新浪的小说为例。

  (1)首先得引入文件吧

include"simple_html_dom.php";

  (2)咱这抓小说比较简单,深度就一层,不涉及到什么图的深搜广搜,你只要观察URL的规律即可

$url="http://vip.book.sina.com.cn/chapter/220331/2143";//用for循环加东西就是了

  (3)如果for循环的次数太多会报错:超时提醒。甭担心这不是咱的错,这是配置文件的错,咱加上这句话就OK了

ini_set('max_execution_time', '100');

  (4)实例化Simple_html_dom

$html=new simple_html_dom();

  (5)然后就是for循环生成一个个的URL然后提取内容了主要用到下面的东西

    //从URL加载 $html->load_file($url_temp);

    //查找class为mainContent的div $title=$html->find("div[class=mainContent] h1",0);

    //收集正文 $content=$html->find("div[class=mainContent] div[class=contTxt1]",0);

  (6)适当的用正则控制以下格式

    //换行 $content=preg_replace($pattern,"\r\n",$content);     //加空格 $content=preg_replace($pattern1," ",$content);

  (7)当然少不了他了(去除html标签)

$title=strip_tags($title); $content=strip_tags($content);

  (8)写入文件即可

  (9)恭喜你,小说抓取成功。

3.主要用到的技术

   (1)对php的熟练应用

   (2)掌握正则表达式。

   (3)主要是Simple_html_dom.php的使用

   (4)还得注意php超时问题

  当循环太多时会出现超时问题,建议不要修改配置文件

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏西枫里博客

Python学习笔记一(Hello World)

2017年年终确定的从2018年开始学习一门新的语言。随着机器学习人工智能的日渐深入,是时候有必要掌握以下Python了。博客从今天开始会陆续更新下Python...

10640
来自专栏xingoo, 一个梦想做发明家的程序员

Java程序员的日常 —— 工作一天的收获

看题目可能是扯皮,其实还是有很多专业知识的。从最开始没有注意到设计原则,到后面的jquery实战技巧,都是今天一天碰到的问题。 每天整理一点点,每天收获一点...

32570
来自专栏数据和云

巧用SQL:Oracle中实现split相关方法总结

尚世波 从事数据库方面工作多年,专注于pl/sql开发、数据库设计、优化方面的研究,喜欢挑战 前文回顾:巧用SQL:oracle pl/sql split函...

41450
来自专栏吴柯的运维笔记

当前最火的编程语言-Python简介

7月20日,IEEE发布2017年编程语言排行榜:Python高居首位。 ? Python , 是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido ...

46070
来自专栏Java3y

【Java】几道让你拿offer的面试题

之前在刷博客的时候,发现一些写得比较好的博客都会默默收藏起来。最近在查阅补漏,有的知识点比较重要的,但是在之前的博客中还没有写到,于是趁着闲整理一下。

51800
来自专栏程序员的诗和远方

异步多图加载这件小事儿(Promise与async)

日常开发过程中,时不时会遇到要同时预加载几张图片,并且等都加载完再干活的情况,结合 Promise 和 async/await 代码会优雅很多,但也容易遇到坑,...

37480
来自专栏量化投资与机器学习

【干货】Matlab的内存问题讨论

谢谢大家支持,可以让有兴趣的人关注这个公众号。让知识传播的更加富有活力,谢谢各位读者。 很多人问我为什么每次的头像是奥黛丽赫本,我只能说她是我女神,每天看看女神...

23180
来自专栏北京马哥教育

Redis 数据结构使用场景

一、redis 数据结构使用场景   原来看过 redisbook 这本书,对 redis 的基本功能都已经熟悉了,从上周开始看 redis 的源码。目前目标...

47640
来自专栏玄魂工作室

Hacker基础之Python篇:一、环境安装和基础知识

0x01. 前言 emmmmmmm...你只需知道这是一门用途很广的语言,上到大数据AI,下到Linux运维,都可以使用Python,当然,黑客也用Pyth...

31260
来自专栏CRPER折腾记

Angular 6 + 折腾记 :(11) 写一个挺不靠谱的多少秒/分/时/天前的管道

12020

扫码关注云+社区

领取腾讯云代金券