删除粉丝表中抓取错误的数据-微信公众平台开发

 更新时间:2016年11月25日 17:24  点击:1391
由于将公众平台的粉丝数据进行对应的时候会存在openid和fakeid对应错的问题,所以需要及时清理数据库中抓取错误的数据。上边的sql中删除一个公众帐号中fakeid出现两次的数据,下次用户在进行互动的时候在进行抓取

下面我给各位同学写了一条删除错误数据的sql希望对各位有帮助。

 代码如下 复制代码

SELECT *
FROM enet_wechatfans
WHERE fakeid
IN (
SELECT fakeid
FROM (
SELECT COUNT( * ) c, id, fakeid
FROM  `enet_wechatfans`
WHERE weid =135
GROUP BY fakeid
HAVING c >1
) AS tmp
) AND weid = 135

这个采集程序是一个非常简单的程序了,个人认为不适合于大量数据采集了单页还是没有问题了,因为fopen函数对于远程文件操作与多线程时是非常的不理想的,这个只是一个作者写的觉得好玩合出来了。
 代码如下 复制代码


/**
* 根据URL采集网页内容
*
* @param string $url 链接地址
* @return string
*/

private function fetchbyurl($url){
$handle = fopen($url, ‘r’);
$content = ”;
while (!feof($handle)){
$content .= fgets($handle, 10000);
}
return $content;
//?$this->utf8_iconv($content):”;
}

/*获取所有匹配的内容
* @param string $str 内容
* @param string $start 起始匹配
* @param string $end 中止匹配
* @return array
*/

private function utf8_iconv($content){
return iconv(‘GBK’, ‘UTF-8′, $content);
}
private function strCutAll($str,$start,$end){
$content = explode($start,$str);
$matchs = array();
$sum = count($content);
for( $i = 1;$i < $sum;$i++ ){
$tmp = explode($end,$content[$i]);
$matchs[] = $tmp[0];
unset($tmp);
}
return $matchs;
}

/*获取第一个匹配的内容
* @param string $str 内容
* @param string $start 起始匹配
* @param string $end 中止匹配
* @return string
*/
private function strCut($str, $start, $end){
$content = strstr( $str, $start );
$content = substr( $content, strlen( $start ), strpos( $content, $end ) - strlen( $start ) );
return $content;
}

测试:

/*采集程序*/header("content-Type: text/html; charset=utf-8"); //$nr = file_get_contents(‘/webback/php/php-yi-ju-hua-hou-men-zhuan’); $nr = $this->fetchbyurl(‘/webback/php/php-yi-ju-hua-hou-men-zhuan’);//推荐,还可以用curl dump($this->strCut($nr,’<div class="context">’,'<div class="betterrelated">’));//得到内容。需要进一步过滤用(preg_match_all) dump($this->strCutAll($nr,’<title>’,'</title>’)); 得到标题

微信是一个天生的CRM系统,但是他缺少了在线客服功能,虽然官方提供了客服接口,但是很多人还没有明白太是用来做什么的。最近由于公司的需要做了一套在线客服,这样就可以打通了和用户沟通的瓶颈了,这样可以让我们和粉丝更好的进行沟通。

其实微信你完全可以想想成一个类似于QQ在线聊天工具,这样是我们要做的重点,将微信做成一个类似于QQ的IM,当然这些功能实现是任何公众号都可以的。不需要你有高级接口,只需要你是一个公众号即可

1、当公众平台收到消息时最近用户列表会自动闪烁,并将用户放在第一个

2、直接在该页面可以和用户直接进行即时聊天,让微信成为客服系统,让微信成为你的销售利器
3、可以和你公众号里的每一个用户及时沟通,右侧的用户列表可以显示你所有的粉丝
4、说白了和你的QQ聊天是一样。
5、干技术的不懂的销售,能说的就这么多。

 

微信在线客服系统-微信公众平台开发

今天把网站换了台服务器结果发现UCenter打开时提示UCenter info: Can not connect to MySQL server 了,但通信是没有问题,只是注册时提示错误,这个不用说就是数据库配置文章的问题,

修改下Discuz的配置文件罗。找到
安装目录/config/config_global.php 及 安装目录/uc_server/data/config.inc.php修改。
OK,没有出现错误了,但是不管是点击注册,还是登录,都会出现“内部错误,无法显示此内容”,然后再点击这个错误提示,又出现上面的“UCenter info:Can not connect to MySQL server。不能连接数据库了。
蛮奇怪,但是通过http://localhost/bbs/uc_server/登录UCenter是没问题的,看到应用设置里面也是显示通信成功的,我下载数据之后也进入这里修改了域名绑定的了。


主要错误:

UCenter info: Can not connect to MySQL server
Error:
Errno:0

需要修改的文件是以下三个:
安装目录/config/config_global.php        
安装目录/config/config_ucenter.php   
安装目录/uc_server/data/config.inc.php 

具体怎么改我给个例子

 代码如下 复制代码

config_global


// ------------------  CONFIG DB  ------------------- //
$_config['db']['1']['dbhost'] = 'localhost';
$_config['db']['1']['dbuser'] = 'a064322111';
$_config['db']['1']['dbpw'] = 321423432;
$_config['db']['1']['dbcharset'] = 'utf8';
$_config['db']['1']['pconnect'] = '0';
$_config['db']['1']['dbname'] = 'a064322111';
$_config['db']['1']['tablepre'] = 'pre_';


config_ucenter

 代码如下 复制代码

<?php


define('UC_CONNECT', 'mysql');

define('UC_DBHOST', 'localhost');
define('UC_DBUSER', 'a064322111');
define('UC_DBPW', '321423432');
define('UC_DBNAME', 'a064322111');
define('UC_DBCHARSET', 'utf8');
define('UC_DBTABLEPRE', '`a064322111`.pre_ucenter_');
define('UC_DBCONNECT', 0);

define('UC_CHARSET', 'utf-8');
define('UC_KEY', 'VdMcG6D4Pdx1S1H2Acfab6o3j4t5x5xfV7vaTbg5I17dE1Y3k0ueh6EaQ3b8EaBb');
define('UC_API', 'http://www.111cn.net / uc_server');
define('UC_APPID', '1');
define('UC_IP', '127.0.0.1');
define('UC_PPP', 20);
?>

config.inc

 代码如下 复制代码

<?php
define('UC_DBHOST', 'localhost');
define('UC_DBUSER', 'a064322111');
define('UC_DBPW', '321423432');
define('UC_DBNAME', 'a064322111');
define('UC_DBCHARSET', 'utf8');
define('UC_DBTABLEPRE', 'pre_ucenter_');
define('UC_COOKIEPATH', '/');
define('UC_COOKIEDOMAIN', '');
define('UC_DBCONNECT', 0);
define('UC_CHARSET', 'utf-8');

最近在捣鼓微信公共平台提供的API,等确实一个获取用户信息的API。所以没有办法,只能自己去获取,手动填写当然可以解决问题,当然编程不就是为了让生活变的更简单么?

当然,远程抓取微信公共平台数据的想法就油然而生,当然第一个想到了CURL。

CURL可以远程提交表达,我感觉微信是提议让我们怎么的,只要不是恶意刷接口,就不会出现验证码。

主要注意的几个问题

1.远程登录接口是时候的HTTPS协议。
2.登录成功后页面有跳转。
3.返回的HTML页面是可以直接输出的。
下面展示了一个CURL的具体写法

 代码如下 复制代码
//微信远程登录绑定账号
   public function Curl_login($username,$pwd){
    $config_token = "XiaoDengPHP";
    $pwd = md5($pwd);
    $url = "https://mp.weixin.qq.com/cgi-bin/login?lang=zh_CN";
    $postArray = array("username=".$username,"pwd=".$pwd,"imgcode=","f=json");
    $fields = implode("&", $postArray);
    $filedir = $_SERVER['DOCUMENT_ROOT']."/Cookies";
    $cookie_file =  $filedir."/cookie.txt";
    $ch = curl_init();  www.111cn.net
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1); //表示是https协议提交
    curl_setopt($ch, CURLOPT_HEADER, 0); //不返回header部分
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)");
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
    curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file); //生产Cookies并保存在指定目录下
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); //将curl_exec()获取的信息以文件流的形式返回,而不是直接输出。
    curl_setopt($ch, CURLOPT_REFERER,"https://mp.weixin.qq.com/cgi-bin/login?lang=zh_CN"); //跳转指向
    $result = curl_exec($ch);
    return json_decode($result);
    // 关闭CURL会话
    curl_close($ch);
}

上面这个方法就实现了,远程登录微信公共平台,接下来的事,就是去让账号变成开发者模式,一样的CURL。
注意这次的curl要带上cookies而不是生产cookies
重点代码在于验证服务器的相应,你需要设置一个服务器的连接和一个token

 代码如下 复制代码
public function auth($token)
  {
       $data = array(
       $_GET['timestamp'],
       $_GET['nonce'],
       $token);
       $sign = $_GET['signature'];
       sort($data);
       $signature = sha1(implode($data));
        if($signature === $sign){
              echo ($_GET['echostr']);
          exit;
        }else{
          return false;
          }
 }

这样如果开通成功了,应该会返回一个MES=302的json数据和一个微信平台认证的token的信息。

只要你细心,你就会发现,微信连接里面TOKEN是一个动态变化的,但有是在一段时间内不变的。

所以你需要这个token来构造URL,来获取其他页面信息。

但开发现过程中,你一定遇到一个很崩溃的问题。

[!--infotagslink--]

相关文章

  • C#抓取网络图片保存到本地的实现方法

    下面小编就为大家分享一篇C#抓取网络图片保存到本地的实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-06-25
  • 微信公众平台实现微信网页登陆授权开发

    微信公众平台实现微信网页登陆授权开发其实是非常的简单了,因为官方的参考程序了,下面小编就看了一站长根据官方参考做的一个网页登陆授权例子,大家可看看。 文件1:in...2016-11-25
  • C#使用WebClient登录网站并抓取登录后的网页信息实现方法

    这篇文章主要介绍了C#使用WebClient登录网站并抓取登录后的网页信息实现方法,涉及C#基于会话操作登陆网页及页面读取相关操作技巧,需要的朋友可以参考下...2020-06-25
  • PHP Curl模拟登录微信公众平台、新浪微博实例代码

    这篇文章主要介绍了PHP Curl模拟登录微信公众平台、新浪微博实例代码的相关资料,涉及到php curl模拟登录相关知识,需要的朋友可以参考下...2016-02-01
  • php版本微信公众平台回复乱码问题解决方法

    微信公众平开发时碰到回复中文乱码了,这个问题小编发现是编码问题,其实只要把编码转成utf8就可以解决了,具体来看看。 很多微信公众平台的自动回复程序都是 ThinkWec...2016-11-25
  • PHP抓取远程图片(含不带后缀的)教程详解

    最近在做微信登录开发时候,发现微信头像图片没有后缀名,传统的图片抓取方式不奏效,需要特殊的抓取处理。所以,后来将各种情况结合起来,封装成一个类,分享出来给大家,感兴趣的朋友们下面来一起看看吧。...2016-11-01
  • 微信公众平台开发通过php创建自定义菜单

    自定义菜单可以在后台设置但如果你使用了开发者之后那么后台的自定义菜单功能就失效了,必须通过程序来创建了,下面一起来看一个简单的通过php创建自定义菜单的例子。...2016-11-25
  • C#使用HtmlAgilityPack抓取糗事百科内容实例

    这篇文章主要介绍了C#使用HtmlAgilityPack抓取糗事百科内容的方法,实例分析了C#中HtmlAgilityPack的相关使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • php版微信公众平台账号自定义菜单类

    微信公众平台服务号可申请自定义菜单了,其它的号暂时不支持自定义菜单了,这个不但可以使用api来操作,还可以直接在后台定义菜单与参数哦。 申请自定义菜单 服务号可...2016-11-25
  • PHP怎样用正则抓取页面中的网址

    从页面中抓取页面中所有的链接,当然使用PHP正则表达式是最方便的办法。要写出正则表达式,就要先总结出模式,那么页面中的链接会有几种形式呢?下面一起来看看。...2016-08-27
  • php 微信公众平台开发之验证步骤

    微信公众平台开发我们现在做得比较多了,下面给各位介绍的是一个入门级别的微信公众平台验证基础知识了,有兴趣的和小编来看看。 开发微信的时候 需要验证一下 。...2016-11-25
  • C#使用Selenium+PhantomJS抓取数据

    本文主要介绍了C#使用Selenium+PhantomJS抓取数据的方法步骤,具有很好的参考价值,下面跟着小编一起来看下吧...2020-06-25
  • go语言实现一个简单的http客户端抓取远程url的方法

    这篇文章主要介绍了go语言实现一个简单的http客户端抓取远程url的方法,实例分析了Go语言http操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-05-07
  • picturebox加载图片的三种方法与网站验证码的抓取

    这篇文章主要介绍了picturebox加载图片的三种方法与网站验证码的抓取,需要的朋友可以参考下...2020-06-25
  • .NET Core 实现定时抓取网站文章并发送到邮箱

    本片文章通过实例讲述.NET Core 实现定时抓取博客园首页文章信息并发送到邮箱这个功能,对此有兴趣的朋友参考学习下。...2021-09-22
  • 微信公众平台模拟登录之验证码获取

    最近在模拟登录的时候愈发的出现登录失败的情况,原因是:微信公众平台登录如果时不时的会对一些异常帐号要求输入验证码才可以登录 这个时候平台首页的登录逻辑就会...2016-11-25
  • 微信公众平台开发入门教程

    要对微信公众平台进行开发,首先需要成为开发者,可以到https://mp.weixin.qq.com/注册一个帐号,然后按要求填写相关信息即可。 有了公众号后,在公众平台的高级功能里选...2016-11-25
  • go语言实现抓取高清图片

    本文给大家分享的是使用go语言实现的抓取高清美女图片的代码,原理非常简单,这里就不多废话了,主要是看到很多小伙伴使用python实现的,心血来潮就用go写了下,推荐给大家。...2020-05-07
  • python 基于AioHttp 异步抓取火星图片

    这篇文章主要介绍了python 基于AioHttp 异步抓取火星图片的方法,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下...2021-03-19
  • PHP+Ajax远程图片抓取器下载的例子

    远程图片保存功能以前介绍过很多php的例子,这里我给大家介绍一个php+ajax的例子,希望本例子给你会有所帮助。 先看效果 实现原理 发送请求 :将输入的目标网址及保...2016-11-25