关于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超时问题

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

相关文章
|
12天前
|
搜索推荐 定位技术 UED
HTML定位技术:种类、特点与应用
HTML定位技术:种类、特点与应用
|
1月前
|
移动开发 前端开发 HTML5
【基于HTML5的网页设计及应用】——工字型布局
【基于HTML5的网页设计及应用】——工字型布局
65 0
|
1月前
|
移动开发 HTML5 容器
【基于HTML5的网页设计及应用】——固定宽度布局
【基于HTML5的网页设计及应用】——固定宽度布局
28 0
|
1月前
|
移动开发 前端开发 数据安全/隐私保护
【基于HTML5的网页设计及应用】——用户注册
【基于HTML5的网页设计及应用】——用户注册
23 0
|
1月前
|
移动开发 前端开发 HTML5
【基于HTML5的网页设计及应用】——实现个人简历表格和伪类选择器应用
【基于HTML5的网页设计及应用】——实现个人简历表格和伪类选择器应用
46 0
|
1月前
|
JavaScript 前端开发 算法
js开发:请解释什么是虚拟DOM(virtual DOM),以及它在React中的应用。
虚拟DOM是React等前端框架的关键技术,它以轻量级JavaScript对象树形式抽象表示实际DOM。当状态改变,React不直接操作DOM,而是先构建新虚拟DOM树。通过高效diff算法比较新旧树,找到最小变更集,仅更新必要部分,提高DOM操作效率,降低性能损耗。虚拟DOM的抽象特性还支持跨平台应用,如React Native。总之,虚拟DOM优化了状态变化时的DOM更新,提升性能和用户体验。
23 0
|
5月前
|
JavaScript 前端开发 开发者
jQuery文档对象模型DOM的实际应用
jQuery文档对象模型DOM的实际应用
30 0
|
6月前
|
前端开发 搜索推荐 开发者
Fiori Elements 应用本地启动后 test 文件夹里的 flpSandbox.html
Fiori Elements 应用本地启动后 test 文件夹里的 flpSandbox.html
37 0
|
1月前
|
移动开发 HTML5
HTML5表格简单应用案例之[招聘需求表]
HTML5表格简单应用案例之[招聘需求表]
11 0
|
1月前
|
移动开发 前端开发 HTML5
【基于HTML5的网页设计及应用】——float实现页面布局
【基于HTML5的网页设计及应用】——float实现页面布局
27 0