模拟微信自动化发送(微信公众号文章自动点击)

大家好,我是烤鸭:

    分享个微信自动化发送的新方式,仅技术分享。
本来是公众号文章抓取相关的,审核一直不过,将就看吧。

需要的工具

Java(jdk1.8)

Fiddler

Python(3.8)

一些获取链接的方式

​内部链接:
https://blog.csdn.net/wnma3mz/article/details/78570580

三方API:
http://www.gsdata.cn/query/wx?q=%E5%B7%85%E5%B3%B0%E6%99%BA%E4%B8%9A

搜狗搜索:
http://weixin.sogou.com/weixin?type=1&query=%E5%A4%A7%E6%95%B0%E6%8D%AE%E6%96%87%E6%91%98&ie=utf8&sug=n&sug_type=

(会要求输入验证码)

自动化发送

修改 Fiddler,Rules—>Customize Rules, OnBeforeResponse 方法,拦截response写入

static function OnBeforeResponse(oSession: Session) {if (m_Hide304s && oSession.responseCode == 304) {oSession["ui-hide"] = "true";}//加在方法末尾if (oSession.HostnameIs("mp.weixin.qq.com") && oSession.uriContains("https://mp.weixin.qq.com/mp/getappmsgext")){var filename = "D:\\data\\wx\\fiddler-token.log";var curDate = new Date();var logContent =  "[" + curDate.toLocaleString() + "] " + oSession.GetRequestBodyAsString() + "\r\n"+oSession.GetResponseBodyAsString()+"\r\n";var sw : System.IO.StreamWriter;if (System.IO.File.Exists(filename)){sw = System.IO.File.AppendText(filename);sw.Write(logContent);}else{sw = System.IO.File.CreateText(filename);sw.Write(logContent);}sw.Close();sw.Dispose();}}

利用python微信发送,自动点击发送内容,效果如图。

在这里插入图片描述

url就是列表接口获取的,放到txt文件

import time
import tracebackimport psutil
from pywinauto.application import Application
from time import sleep
from pywinauto import mouse
from pywinauto.keyboard import send_keys
from pywinauto import keyboard# 常用方式一:连接已有微信进程(进程号在 任务管理器-详细信息 可以查看)
global gPid, gApp, win_main_Dialog, win, search, search_cords
gPid = 0
search = Nonedef GetWeChatPID(name):# 获得全部进程的ID# pids=psutil.pids()pids = psutil.process_iter()# 遍历全部进程IDfor pid in pids:if (pid.name() == name):# 输出进程IDreturn pid.pid# 没有找到则输出0return print('请打开微信')def auto_play_wechat(url):print('gPid =' + str(globals()['gPid']) + '')global gPid, gApp, win_main_Dialog, win, search, search_cordsif globals()['gPid'] == 0:gPid = GetWeChatPID('WeChat.exe')gApp = Application(backend='uia').connect(process=gPid)# 拿到微信主窗口win_main_Dialog = gApp.window(class_name='WeChatMainWndForPC')win = gApp[u'微信']win.set_focus()# 定位到信息列表,获取这个对象conunacation = win_main_Dialog.child_window(title="会话", control_type="List")# 定位到这个位置position = conunacation.rectangle()mouse.click(button='left', coords=(position.left + 100, position.top + 10))send_keys(url, pause=0.005)send_keys('{ENTER}')mes = win_main_Dialog.child_window(title=u"消息", control_type="List")mes_list = mes.items()for i, mes in enumerate(mes_list):text = url.split('mp.weixin.qq.com')[1]if text in str(mes):text_cord = mes.rectangle()mouse.click(coords=(text_cord.left + 150, text_cord.top + 50))# 最小化文件传输助手# win.maximize()sleep(2)win.close()# 鼠标复位# mouse.press(button='left',coords=(text_cord.left - 1500, text_cord.top - 20))# win_main_Dialog.minimize()def getUrlsByTxt(localUrl):with open(localUrl, "r") as f:seed = 1;for line in f.readlines():line = line.strip('\n')  # 去掉列表中每一个元素的换行符print('seed=%d,line=%s' % (seed, line))try:auto_play_wechat(line)except Exception as e:traceback.print_exc()seed += 1if __name__ == '__main__':# auto_play_wechat('http://mp.weixin.qq.com/s?__biz=MjM5NTE1OTQyMQ==&mid=2650952200&idx=1&sn=b4302c5fd6fb356c71e561c5dc8bda7f&chksm=bd0a3e1a8a7db70c010d2ebdeec37432f303ead76e2ededfd34245414dcbf90e22093a04b7cc#rd')getUrlsByTxt('D:\\data\\wx\\urls_test.txt');

fiddler 拦截之后的输出

[2022年2月17日 22:41:44] r=0.8837538029416401&__biz=MjM5NzM0MTYyMw%3D%3D&appmsg_type=9&mid=2650518168&sn=b465db5c67ec66135eb746c28478aa3c&idx=3&scene=27&title=%25E7%25BB%259D%25E7%25BE%258E%25EF%25BC%2581%25E5%258D%2583%25E4%25BD%2599%25E4%25BB%25B6%25E4%25B8%25AD%25E5%258D%258E%25E7%2591%25B0%25E5%25AE%259D%25E4%25BA%25AE%25E7%259B%25B8%25E5%259B%25BD%25E5%25AE%25B6%25E7%25BA%25A7%25E6%2596%2587%25E5%258C%2596%25E6%25AE%25BF%25E5%25A0%2582&ct=1644238894&abtest_cookie=&devicetype=Windows%2010%20x64&version=63030073&is_need_ticket=0&is_need_ad=0&comment_id=2258995482893221894&is_need_reward=0&both_ad=0&reward_uin_count=0&send_time=&msg_daily_idx=1&is_original=0&is_only_read=1&req_id=1722XL3Y7mdpMii8yfbIJSkU&pass_ticket=g%2BhXr1LC9DCyiGiZCGxTkC6pBwoMhg%2BEX2txlFKR2zFpLQTWYeO3RzUnViAEnnm5&is_temp_url=0&item_show_type=0&tmp_version=1&more_read_type=0&appmsg_like_type=2&related_video_sn=&related_video_num=5&vid=&is_pay_subscribe=0&pay_subscribe_uin_count=0&has_red_packet_cover=0&album_id=1296223588617486300&album_video_num=5&cur_album_id=undefined&is_public_related_video=NaN&encode_info_by_base64=undefined&exptype=
{"advertisement_info":[],"appmsgstat":{"show":true,"is_login":true,"liked":false,"read_num":448,"like_num":1,"ret":0,"real_read_num":0,"version":1,"prompted":0,"like_disabled":false,"style":1,"video_pv":0,"video_uv":0,"friend_like_num":0,"old_liked":false,"old_like_num":2,"show_gray":0,"old_liked_before":0,"show_like":1,"show_like_gray":0,"show_old_like":1,"show_old_like_gray":0,"show_read":1},"comment_enabled":1,"reward_head_imgs":[],"only_fans_can_comment":false,"comment_count":0,"is_fans":1,"nick_name":"ccc","logo_url":"http:\/\/mmsns.qpic.cn\/mmsns\/iaxNB5XaibCeLTYWIUGCYm7cS1kFxTx4ibUSEBZJ6VnOdXPDItJ9PaGRg\/0","friend_comment_enabled":1,"base_resp":{"wxtoken":777},"more_read_list":[],"friend_subscribe_count":0,"related_tag_article":[],"original_article_count":0,"video_share_page_tag":[],"related_tag_video":[],"only_fans_days_can_comment":false,"appmsg_album_videos":[],"test_flag":0,"video_continue_flag":1,"public_tag_info":{"tags":[]},"share_flag":{"show":1,"show_gray":0},"appmsgact":{"old_liked_before":0,"seen_before":0,"share_before":0,"favorite_before":0,"reward_before":0,"pay_before":0}}

解析文本 ReaderTxt

package com.machu.picchu.crawler.utils;import com.alibaba.fastjson.JSONObject;import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;/*** 读取Fiddler写入的内容,并将结果写入数据库* @author Administrator**/
public class ReaderTxt {
//    DBUtil dbu=new DBUtil();public static void main(String[] args){ReaderTxt rt=new ReaderTxt();ArrayList<String> list=rt.InitTxt();for(int i=0;i<list.size();i++){System.out.println("dbUtil readTxt inum="+i);///mp/getappmsgext?f=json&mock=&uin=777&key=777&pass_ticket=&wxtoken=777&devicetype=Windows10&clientversion=62060833&appmsg_token=1018_nqJWTVcEH20DIl%252Fh4-0maWDSZTGyPYXvkZxC7pYdkfUq6veSGq2rEbgTDV9pLGv0UXuxxPipiSVTela1&x5=0&f=jsonString urlmsg=list.get(i);if(!urlmsg.contains("appmsg_type")){System.out.println("dbUtil readTxt inum="+i+" ,no appmsg_type");continue;}int start=urlmsg.indexOf("&sn=")+4;urlmsg=urlmsg.substring(start);int end=urlmsg.indexOf("&");urlmsg=urlmsg.substring(0, end);String info=list.get(i+1);if(!info.contains("appmsgstat")){System.out.println("dbUtil readTxt inum="+i+" ,no appmsgstat");continue;}JSONObject json=JSONObject.parseObject(info);if(json.containsKey("appmsgstat")){JSONObject appmsgstat=json.getJSONObject("appmsgstat");int read_num=appmsgstat.getInteger("read_num");int like_num=appmsgstat.getInteger("like_num");int old_like_num=appmsgstat.getInteger("old_like_num");}}
//        rt.dbu.destroy();}public ArrayList<String> InitTxt(){ArrayList<String> list=new ArrayList<String>();try { // 防止文件建立或读取失败,用catch捕捉错误并打印,也可以throw  /* 读入TXT文件 */  String pathname = "D:\\data\\wx\\fiddler-token.log"; // 绝对路径或相对路径都可以,这里是绝对路径,写入文件时演示相对路径File filename = new File(pathname);InputStreamReader reader = new InputStreamReader(  new FileInputStream(filename),"utf-8"); // 建立一个输入流对象reader  BufferedReader br = new BufferedReader(reader); // 建立一个对象,它把文件内容转成计算机能读懂的语言  String line = "";  while (line != null) {  line = br.readLine(); // 一次读入一行数据  if(line==null){ break;}list.add(line);}  } catch (Exception e) {  e.printStackTrace();  } return list;}
}

总结

仅限个人学习,有很多不完善的地方。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/48211.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Wetool 一款高效免费的微信社群管理工具,检查单向好友,自动回复、群发

这是一款高效免费的微信社群管理工具&#xff0c;目前功能主要有客服、机器人、单删查询、自动接受好友、以及群管理的一些工具 下面放一下软件功能截图 需要注意的是开启此工具需要下载旧版本的微信&#xff0c;这个在软件安装启动页面会自动进行下载。 单删改查功能 这个功能…

微信运营必备!专业的微信粉丝和社群管理工具!功能强大好用,而且免费!

我们现在的生活&#xff0c;微信已经变成国民APP&#xff0c;几乎每个手机中都会有Ta的影子&#xff0c;就连最新的老人机内置应用中都有。这么庞大的用户体量&#xff0c;很多人都会将自己的客户或者粉丝加到个人号中&#xff0c;有的甚至有500的群&#xff0c;这么多的客户和…

加粉推广全能助手 推广辅助工具 好多粉微信号加粉复制统计工具加强版,加粉推广神器,持续完善升级,新增统计点击转化,页面插件功能,完美支持ocpc接口

最新一次版本是3.7版了&#xff0c;相比最开始的版本&#xff0c;新增了行为转化统计&#xff0c;落地页插件功能。 可能大家还不明白我们的这个系统有什么用了&#xff1f; 好吧&#xff0c;那就简单的介绍下&#xff0c;我们的系统可以给目前的加粉推广的提供最完善的数据统…

轻松采集微信文章,助自媒体创作优质内容!

微信已成为自媒体领域的重要平台之一&#xff0c;其丰富的内容和庞大的用户群体&#xff0c;吸引了越来越多的自媒体人士加入其中。而对于自媒体人士来说&#xff0c;如何快速高效地采集微信文章成为了一个必须掌握的技能。本文将介绍一种基于emlog的微信文章采集方法&#xff…

Wechaty|微信小助手(非web|机器人)

前言 最近在dy上看到有相关wx机器人&#xff08;SCRM&#xff09;在进行相关推广&#xff0c;而之前学习的时候&#xff0c;用基于python开发的itchat玩过一段时间&#xff0c;后来&#xff0c;某一天突然发现微信登不上了&#xff0c;官方的微信网页版也不能登陆了&#xff0…

全网一触即发,自媒体人的内容分发全能助手——融媒宝

作为一个科技数码自媒体人&#xff0c;每天码字、录制视频&#xff0c;那是家常便饭&#xff0c;所谓写文章、录视频的时候&#xff0c;一时忘我一时爽&#xff0c;可到了多平台分发内容&#xff0c;那简直是让人头疼&#xff0c;又浪费太多的时间&#xff0c;分发完毕&#xf…

自媒体人必不可少的多平台同步、一文多发小助手

hello,本期给大家介绍两款自媒体人必不可少的小插件&#xff0c;分别可以达到多平台同步的微信同步助手和支持一文多发的OpenWrite助手。 相信在我们平时&#xff0c;经常会遇到这种情况&#xff0c;当微信写了原创文章&#xff0c;怎样分发到知乎、简书、头条等自媒体平台呢&a…

自媒体助手软件开发需具备哪些功能?

自媒体助手软件开发需具备哪些功能&#xff1f; 1、多平台多账号管理。 用户可以在单独的平台上管理其他平台的账号&#xff0c;不需要登录多个平台&#xff0c;为用户减少了大量的时间&#xff0c;与此同时可以记忆账号和密码&#xff0c;提供分组管理&#xff…

微信同步助手android,微信同步助手插件(自媒体分发)

微信同步助手插件能够快速在各大平台同步推送微信公众号文章&#xff0c;适用于新媒体运营用户&#xff0c;支持多种平台同步推送&#xff0c;包括今日头条、WordPress、知乎、简书等&#xff0c;一键即可同步推送文章&#xff0c;大大减少了复制粘贴排版带来的繁琐工作量&…

来聊聊我们为什么要写单测

前言 哈喽&#xff0c;大家好&#xff0c;我是海怪。 最近在组里我又领了一个新任务&#xff1a;前端单元测试。 关于这个话题在很早的时候就想和大家聊了&#xff0c;奈何一直没机会。对于我个人来说&#xff0c;我是非常喜欢写单测的。最近还买了本《软件测试》的书&#…

7805和78l05可以代换吗_78L05和7805有什么区别

展开全部 主要区别是&#xff0c;性质不同、输入电压、输出电流不同、功62616964757a686964616fe59b9ee7ad9431333433623738能作用不同&#xff0c;具体如下&#xff1a; 一、性质不同 1、78L05 78L05是一种固定电压(5V)三端集成稳压器&#xff0c;可适用于很多应用场合。其卓越…

能代替苹果pencil的手写笔有吗?比较好用的ipad手写笔推荐

要不要买一款电容笔来呢&#xff1f;我想&#xff0c;许多买了ipad的人一定会想要买一款实用的电容笔来和它配对。但太贵的电容笔又担心自己购买后会不用&#xff0c;那么您可以看看替代苹果的原装电容笔。一两百来块钱&#xff0c;买一支平替电容笔&#xff0c;用来记录和画画…

私有属性可以被继承吗_养子女、有抚养关系的继子女可以代位参与继承吗

依据我国继承法的规定&#xff0c;继承人可以对被继承人的财产进行继承&#xff0c;而在继承的过程中会产生一种比较特殊的继承方式&#xff0c;代位继承&#xff0c;那么养子女、有抚养关系的继子女可以代位参与继承吗? 上海资深律师吕桢栋作出解释 一、养子女、有抚养关系的…

ASEMI整流二极管A7二极管和M7二极管能代换吗

编辑-Z A7二极管和M7二极管不仅外观封装很像&#xff0c;各项参数也是非常接近的&#xff0c;那么A7二极管和M7二极管能代换吗&#xff1f;我们先来看看他们的详细参数对比&#xff1a; A7二极管参数&#xff1a; 型号&#xff1a;A7二极管 封装&#xff1a;SOD-123 最大重…

心法利器[81] | chatgpt下非端到端方案是否还有意义

心法利器 本栏目主要和大家一起讨论近期自己学习的心得和体会&#xff0c;与大家一起成长。具体介绍&#xff1a;仓颉专项&#xff1a;飞机大炮我都会&#xff0c;利器心法我还有。 2022年新一版的文章合集已经发布&#xff0c;累计已经60w字了&#xff0c;获取方式看这里&…

chatgpt下非端到端方案是否还有意义

来自&#xff1a;CS的陋室 作者&#xff1a;机智的叉烧 进NLP群—>加入NLP交流群 最近chatgpt逐渐变火&#xff0c;很多人也多少能够发现&#xff0c;chatgpt能够成为一个相对可靠的端到端解决方案&#xff0c;大有干掉很多智能对话助手、搜索引擎的趋势&#xff0c;当然现在…

Android:给应用界面提供快捷方式

Android&#xff1a;给应用界面提供快捷方式 目录 Android&#xff1a;给应用界面提供快捷方式 前言 一、代码 二、遇到的问题和解决方法 1.不知道包名 2.运行时显示错误 三、效果 前言 在平时使用微信&#xff0c;支付宝等APP的时候&#xff0c;我们长按应用图标&#xff0c;…

知识图谱相关概念整理

文章目录 1、概论2、什么是知识图谱&#xff1f;3、知识图谱能做什么&#xff1f;4、知识图谱的技术路线图5、知识图谱构建5.1、构建知识图谱的生命周期5.2、Schema定义5.3、知识抽取5.4、知识融合5.5、知识存储5.6、知识推理 6、知识图谱应用6.1 搜索6.2 问答系统&#xff08;…

让Visual Studio用上chatgpt

最近小编思维发散“Visual Studio可以集成chatgpt吗&#xff1f;”&#xff0c;这样不就可以让chatgpt帮你写代码了吗&#xff1f;寻觅了一圈&#xff0c;还真有这个东西&#xff0c;那就是一个Visual Studio的扩展插件&#xff1a;Visual chatGPT Studio&#xff0c;虽然不是官…

P4999 烦人的数学作业

不会数位dp,遂来补习 题意:给定区间 [ L , R ] [L,R] [L,R]求这个区间每个数字拆成10进制后的数字和. 按照固定套路,先要解决 0 到 n 0到n 0到n每个数字拆成10进制后的数字和. 然后把 n n n拆成一个长度为 l e n len len的串, d f s dfs dfs找到合法的 l e n len len位置上的合…