[ 生活需要仪式感 ]

0%

SIMPLE_HTML_DOM采集微信公众号数据

PHP要访问和解析HTML的DOM在操作上比较繁琐,而SIMPLE HTML DOM是一个为PHP写的一个HTML DOM解析器让我们更快的获取与操作到微信公众号文章的关键数据。

[官网地址] && [使用手册]

流程

  1. 加载SIMPLE_HTML_DOM模块
  2. 找到公众号标题作者以及文章内容的特殊标识符或id
  3. 调用模块取得去格式化内容
  4. 输出内容

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php
/**
* SIMPLE_HTML_DOM采集微信公众号数据
* Created by PhpStorm.
* User: Copriwolf
* Date: 2016/5/18
* Time: 10:28
*/

include_once 'simple_html_dom.php';
header("Content-Type: text/html; charset=UTF-8");


$url='http://mp.weixin.qq.com/s?__biz=MjM5NzAwNzMyMA==&mid=411484321&idx=1&sn=45bb6726d1fb9cd4d06dc86a52649b42&scene=4#wechat_redirect
';
$html=file_get_html($url);

//查找并输出标题
$articleTitle=$html->find("#activity-name",0)->plaintext;
echo $articleTitle;

//公众号姓名
echo "<br><span style='color: red'>公众号作者:</span>";
//$html->find("#post-user")->href=null;
$articleAuthor=$html->find("#post-user",0)->plaintext;
echo $articleAuthor."<br>";

//文章内容
//$pageContent=$html->find('#js_content span');
//foreach ($pageContent as $value){
// //为小标题分行
// if (stristr($value, '<strong')){
// echo "<br>".trim($value)."<br>";
// }else{
// echo trim($value);
// }
//
//}

//文章内容-清爽版
$pageContent=$html->find('#js_content span');
foreach ($pageContent as $value){
echo $value->plaintext;
}



//清理simple_html_dom内存占用
$html->clear();

OneMoreThing

微信公众号文章里的投票模块是直接使用iframe嵌入到其中,SIMPLE_HTML_DOM对此无能(可能是我才学粗浅,但是我测试用简单的代码应用是做不到的)。