专栏首页青玉伏案关于Simple_html_dom的小应用

关于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 条评论
登录 后参与评论

相关文章

  • IOS开发之显示微博表情

      在上一篇博客中山寨了一下新浪微博,在之后的博客中会对上一篇代码进行优化和重用,上一篇的微博请求的文字中有一些表情没做处理,比如带有表情的文字是这样的“我要[...

    lizelu
  • iOS开发之多图片无缝滚动组件封装与使用

      经常有园友会问"博主,有没有图片无限滚动的Demo呀?", 正儿八经的图片滚动的Demo我这儿还真没有,今天呢就封装一个可以在项目中直接使用的图片轮播。没看...

    lizelu
  • 算法与数据结构(四) 图的物理存储结构与深搜、广搜(Swift版)

    开门见山,本篇博客就介绍图相关的东西。图其实就是树结构的升级版。上篇博客我们聊了树的一种,在后边的博客中我们还会介绍其他类型的树,比如红黑树,B树等等,以及这些...

    lizelu
  • django模板语法之include

    假如我们有以下模板index.html,代码为: <!DOCTYPE html> <html lang="en"> <head> <meta chars...

    用户1214487
  • git仓库代码统计

    虽然以代码行数来衡量项目或者程序员并不是一件靠谱的事,但是从统计角度看趋势对于技术管理人员还是很有帮助的!推荐一个比较好用的git仓库代码统计工具:git_st...

    陶辉
  • 创建第一个HTML网页

    打开一个你喜欢的编辑器,这里的话,我用的是VScode,那么接下来我们就要开始写我们的第一个前端demo了。

    守护最温柔的金木
  • 通过图片识别文字工具快速获取内容

    最近开发过程中,处理一些信息是需要通过打开图片再去一行一行去敲,非常耗时和繁琐,有时候还会出现一些错误,比如获取图片中的订单号、用户ID等这些信息,很繁琐,又长...

    逍遥壮士
  • 爬虫养成记--顺藤摸瓜回首掏(女生定制篇)

    在上篇教程爬虫养成记——先跨进这个精彩的世界(女生定制篇)[3]中我们已经可以将所有小哥哥的封面照片抓取下来,但仅仅是封面图片在质量和数量上怎么能满足小仙女们的...

    一只图雀
  • P1181 数列分段Section I

    题目描述 对于给定的一个长度为N的正整数数列A[i],现要将其分成连续的若干段,并且每段和不超过M(可以等于M),问最少能将其分成多少段使得满足要求。 输入输出...

    attack
  • HTML5 学习总结(四)——canvas绘图、WebGL、SVG

    一、Canvas canvas是HTML5中新增一个HTML5标签与操作canvas的javascript API,它可以实现在网页中完成动态的2D与3D图像技...

    张果

扫码关注云+社区

领取腾讯云代金券