QQ群号全网采集软件设计与实现

admin 2020-7-21 1822

[TOC]

需求

做QQ营销首先需要人多,需要不断找到新人才能不断宣传增加转化率。人主要在Q群中,所以如果希望在QQ营销行业有所作为,最大化的增加自身转换,主要目标是QQ群。因此第一步就是需要有大量的QQ群号,或者说精准的符合自己产品的QQ群,比如你是做淘宝客推广,就希望找到优惠券领取,便宜好货这样的QQ群,群里大部分都是你的用户。

怎样找到 大量的QQ群号 成为了营销人必须思考的问题

方案调研

为了帮助大家解决这个问题,本工作室通过长期实践发现,有如下几种方法可以快速找到大量的Q群

方法1: 使用QQ自带的搜群功能

这个是最早的方法,也比较有效,问题是需要登陆QQ,而且tx现在风控越来越严格,导致很多搜索的结果比较差,大部分是禁言群或别人做的群排名推广上来的群,或者就是没有搜索到多少就被风控了。

优势: 搜索条件多样,可以支持地区,人数,活跃度 等等条件进行筛选

方法2: 采集互联网上的QQ群

有很多群主 为了宣传自己的Q群,经常会在自己的博客上发自己的Q群号码,因此只要解析出来,进行采集即可

方法3: 互换群

你有群,我有群,咱们换一换就行了

但问题是,群的信息是变化的,比如一个群今天是190人,明天可能就200人了,今天允许任何人加,明天就成为付费群了。计划没有变化快,所以群信息一定要求更新速度快。

最终总结 采集群的要求

  • 渠道多样,量大
  • 信息更新及时
  • 采集出来信息多,可自定义进行二次搜索

设计

  • 本工作室投入了 30台服务器,进行每天24小时 无间断的利用百度、google、bing、搜狗等高级搜索引擎,搜索QQ群,数据进行实时更新,供需要的用户使用。 设计如下:

经过一个月的测试,每天可以采集50w+群号

使用教程

最终后台30台服务器进行运行,提供给用户的页面

在线QQ群搜索http://shop.720life.cn/leishen/sellqunhao.php

首页如下:

根据关键词进行搜索

根据QQ群创建时间 进行筛选(全网独家功能,如选择2015年1月6日之后 创建的群)

根据QQ群所在地 进行检索(全网独家功能 搜索上海 多个所在地使用空格 分隔,如上海 厦门)

过滤 固定数量 人数

只想要10000个群号 ,则需要数量 只输入10000即可 购买数量建议填写,由于数据比较多不填写可能导致查询失败

比如搜索 兼职 相关的群,在群名位置输入 关键词即可,购买数量建议填写,由于数据比较多不填写可能导致查询失败

想搜索多个关键词,在群名位置 使用空格进行分割,比如搜索 兼职 引流

搜索群当前人数 小于100的

在 当前人数>= 后面填写100即可

搜索 群当前人数 大于100的

在 当前人数>= 后面填写100 ,后面复选框 勾选上即可

搜索最大人数 与 群当前人数 操作方法一样

加群方式 选择

  • 1:允许任何人加群
  • 2:验证
  • 3:不允许任何人加
  • 4:正确回答问题
  • 5:管理审核
  • 6:付费

如果想要搜索 运行任何人加群 就在 加群方式 中选择第一个 单项群

需要购买 就点击 购买按钮 即可

支付完成后即可,看到群号列表,可自己下载 也会在界面上展示

开发难点

群号去重

大家都知道去重理论上很简单,直接比较即可,但是当数据量无限增大时,一个简单的问题就可能变成难题,当资源比较有限的情况下,我这里经过调研和测试,最终选择redis进行去重,也是比较主流的去重方法

在线检索

数据库存储选择 - mysql

由于需要根据多个关键词进行检索查询,因此最好使用关系型数据库,自然想到了使用mysql,(由于后面用到了全文检索很多大佬建议用ES,还没有尝试)

mysql查询提速优化 -分表

当导入完数据后,发现1分钟根本无法查询出来结果,因此进行优化,第一个想到的就是分表,将一张表分为10张,分表策略,群号:1014442457 最后一个数字是0~9之间的数,刚好10个,如最后一位是7 则该条记录进入到table_7。(假如分10张表还无法满足查询可以分100张表,取群号最后两位即可,如样例群号最后两位是57 则进入table_57即可)

mysql查询提速优化 -全文搜索ngram_name

最开始针对群名检索使用的是 mysql like 语句,速度慢的想死,当你的数据足够大的时候,更何况像提供在线服务呢? 最终百度到 mysql 5.7 后支持全文检索ngram_name,测试后,真的让人赏心悦目,只需要建表的时候 指定字段即可

CREATE TABLE `quninfo_0` (
  `lx_id` int(11) NOT NULL AUTO_INCREMENT,
  `lx_qunhao` bigint(20) NOT NULL COMMENT '群号',
  `lx_qq` bigint(20) NOT NULL COMMENT '群主',
  `lx_name` varchar(100) DEFAULT '' COMMENT '群名',
  `lx_max` int(11) DEFAULT '0' COMMENT '最大人数',
  `lx_num` int(11) DEFAULT '0' COMMENT '当前人数',
  `lx_memo` varchar(100) DEFAULT '' COMMENT '备注',
  `lx_mytype` int(11) DEFAULT '0' COMMENT '加群方式',
  `lx_qaddr` varchar(50) DEFAULT '' COMMENT '城市',
  `lx_gcate` varchar(50) DEFAULT '' COMMENT '分类',
  `lx_class_text` varchar(100) DEFAULT '' COMMENT '分类',
  `lx_remark` varchar(100) DEFAULT '' COMMENT '备注',
  `lx_stime` bigint(20) DEFAULT 0 COMMENT '检索信息时间戳',
  `lx_gCrtTime` bigint(20) DEFAULT 0 COMMENT '群创建的时间戳',
  `lx_ctime` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `lx_utime` timestamp NULL DEFAULT NULL COMMENT '最后更新时间',
  `lx_ishutup` tinyint(1) DEFAULT 0 COMMENT '0 未禁言,1禁言', 
  `lx_isactive` tinyint(1) DEFAULT 1 COMMENT '0 未活跃,1活跃', 
  PRIMARY KEY (`lx_id`),
  UNIQUE KEY `lx_qunhao` (`lx_qunhao`),
  KEY `qunhao_index` (`lx_qunhao`),
  FULLTEXT KEY `ngram_name` (`lx_name`) /*!50100 WITH PARSER `ngram` */ ,
  FULLTEXT KEY `ngram_class_text` (`lx_class_text`) /*!50100 WITH PARSER `ngram` */ ,
  FULLTEXT KEY `ngram_qaddr` (`lx_qaddr`) /*!50100 WITH PARSER `ngram` */
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8

官方售后交流Q群

官方Q群

最新回复 (2)
  • wagjianqI 11月前
    0 2
    怎么加入官方群,我点链接进不去有群号吗?
  • admin 11月前
    0 3
    wagjianqI 怎么加入官方群,我点链接进不去有群号吗?
    按提示 不断加群 证明自己是真人 就会通过了 哈哈
返回
发新帖
扫码访问