如何用 php 抓取微信文章正文

 我来答
招寄景d
2017-08-16 · TA获得超过854个赞
知道小有建树答主
回答量:435
采纳率:81%
帮助的人:108万
展开全部

一、 页面使用ajax

<td>文章链接:</td>
<td><input type="text" id="url" name="url" size="50">&nbsp; &nbsp;<input type="button" value="获取" onclick="javascript:return getMsg()"/></td>
function getMsg(){
         var title=document.getElementById("title");
         var url=document.getElementById("url").value;
         var typeId;
         var  writer=document.getElementById("writer");
          var addtime=document.getElementById("addtime");
         //alert(url);die;
        $.ajax({
            url: '/addarticle/getmsg',
            type: 'POST',
            dataType:'text',
            data: 'url='+url,
            success: function(data)
            {
                var str=data;
                var arr=new Array();//0是标题;1是时间;2是作者
                var result=str.split("<<>>");

                for(var i=0;i<result.length;i++){
                    arr.push(result[i]);
                }
               title.value=arr[0];
                addtime.value=arr[1];
                writer.value=arr[2];
                //alert(arr[0]);
            },
            error: function()
            {
              alert('请求错误');
            }
        });
      }

二、在php页面利用file_get_content函数获取页面全部信息

该函数是将页面中的所有内容写在字符串中,想要拿到指定的内容,就用到了正则匹配。正则表达式的相关知识就不说了,直接说今天的内容。将结果放在同一个变量中,用特殊符号隔开,以便在视图页面进行分割并写入文本框内。

 public function actionGetmsg(){
         $result=array();
         $url=$_POST["url"];
        $wx_content=file_get_contents($url);//利用函数获得网址的内容

        $title_html="/.*?<title>(.*?)<\/title>.*?/";//正则匹配文章的标题
        preg_match($title_html, $wx_content, $matchs);
        echo $matchs[1]."<<>>";
        //echo '<pre>';var_dump($matchs);echo '</pre>';

        //正则匹配文章的添加时间
        $creattime_html="/.*?<em id=\"post-date\" class=\"rich_media_meta rich_media_meta_text\">(.*?)<\/em>.*?/";
        preg_match($creattime_html, $wx_content, $matchs);
       // echo '<pre>';var_dump($matchs);echo '</pre>';
        echo $matchs[1]."<<>>";
        
        //正则匹配文章的作者
        $wxh_html="/.*?<a class=\"rich_media_meta rich_media_meta_link rich_media_meta_nickname\" href=\"##\" id=\"post-user\">(.*?)<\/a>.*?/";
        preg_match($wxh_html, $wx_content, $matchs);
       // echo '<pre>';var_dump($matchs);echo '</pre>';
        echo $matchs[1]."<<>>";
    }

三、同时大家可以看到图片上时间那一栏,可以自己添加

这里使用的是一个小控件,也就是一个js,WdatePicker.js。

首先在页面的头部引入js控件,在文本框中写下以下代码,点击文本框就可以看到日历形式的出现,选择你需要的日期。

<td><input type="text" name="newsTime" id="addtime" onclick="WdatePicker({dateFmt:'yyyy:MM:dd
HH:mm:ss'})"   placeholder="请输入文章发布时间" />&nbsp;</td>


具体的WdatePicker.js可以在网上找一个。

资料来自:http://www.cnblogs.com/xiaonannan/p/6836494.html

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式