为什么做网站越早越好,做动漫网站的心得体会,公司网站建设怎么协调内容与保密,wordpress管理员登录大家好#xff0c;我是烤鸭#xff1a; 分享个微信自动化发送的新方式#xff0c;仅技术分享。 本来是公众号文章抓取相关的#xff0c;审核一直不过#xff0c;将就看吧。
需要的工具
Java#xff08;jdk1.8#xff09;
Fiddler
Python#xff08;3.8#xff09;…大家好我是烤鸭 分享个微信自动化发送的新方式仅技术分享。 本来是公众号文章抓取相关的审核一直不过将就看吧。
需要的工具
Javajdk1.8
Fiddler
Python3.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?type1query%E5%A4%A7%E6%95%B0%E6%8D%AE%E6%96%87%E6%91%98ieutf8sugnsug_type
会要求输入验证码
自动化发送
修改 FiddlerRules—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\noSession.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# pidspsutil.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(backenduia).connect(processgPid)# 拿到微信主窗口win_main_Dialog gApp.window(class_nameWeChatMainWndForPC)win gApp[u微信]win.set_focus()# 定位到信息列表获取这个对象conunacation win_main_Dialog.child_window(title会话, control_typeList)# 定位到这个位置position conunacation.rectangle()mouse.click(buttonleft, coords(position.left 100, position.top 10))send_keys(url, pause0.005)send_keys({ENTER})mes win_main_Dialog.child_window(titleu消息, control_typeList)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(buttonleft,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?__bizMjM5NTE1OTQyMQmid2650952200idx1snb4302c5fd6fb356c71e561c5dc8bda7fchksmbd0a3e1a8a7db70c010d2ebdeec37432f303ead76e2ededfd34245414dcbf90e22093a04b7cc#rd)getUrlsByTxt(D:\\data\\wx\\urls_test.txt);fiddler 拦截之后的输出
[2022年2月17日 22:41:44] r0.8837538029416401__bizMjM5NzM0MTYyMw%3D%3Dappmsg_type9mid2650518168snb465db5c67ec66135eb746c28478aa3cidx3scene27title%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%2582ct1644238894abtest_cookiedevicetypeWindows%2010%20x64version63030073is_need_ticket0is_need_ad0comment_id2258995482893221894is_need_reward0both_ad0reward_uin_count0send_timemsg_daily_idx1is_original0is_only_read1req_id1722XL3Y7mdpMii8yfbIJSkUpass_ticketg%2BhXr1LC9DCyiGiZCGxTkC6pBwoMhg%2BEX2txlFKR2zFpLQTWYeO3RzUnViAEnnm5is_temp_url0item_show_type0tmp_version1more_read_type0appmsg_like_type2related_video_snrelated_video_num5vidis_pay_subscribe0pay_subscribe_uin_count0has_red_packet_cover0album_id1296223588617486300album_video_num5cur_album_idundefinedis_public_related_videoNaNencode_info_by_base64undefinedexptype
{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 dbunew DBUtil();public static void main(String[] args){ReaderTxt rtnew ReaderTxt();ArrayListString listrt.InitTxt();for(int i0;ilist.size();i){System.out.println(dbUtil readTxt inumi);///mp/getappmsgext?fjsonmockuin777key777pass_ticketwxtoken777devicetypeWindows10clientversion62060833appmsg_token1018_nqJWTVcEH20DIl%252Fh4-0maWDSZTGyPYXvkZxC7pYdkfUq6veSGq2rEbgTDV9pLGv0UXuxxPipiSVTela1x50fjsonString urlmsglist.get(i);if(!urlmsg.contains(appmsg_type)){System.out.println(dbUtil readTxt inumi ,no appmsg_type);continue;}int starturlmsg.indexOf(sn)4;urlmsgurlmsg.substring(start);int endurlmsg.indexOf();urlmsgurlmsg.substring(0, end);String infolist.get(i1);if(!info.contains(appmsgstat)){System.out.println(dbUtil readTxt inumi ,no appmsgstat);continue;}JSONObject jsonJSONObject.parseObject(info);if(json.containsKey(appmsgstat)){JSONObject appmsgstatjson.getJSONObject(appmsgstat);int read_numappmsgstat.getInteger(read_num);int like_numappmsgstat.getInteger(like_num);int old_like_numappmsgstat.getInteger(old_like_num);}}
// rt.dbu.destroy();}public ArrayListString InitTxt(){ArrayListString listnew ArrayListString();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(linenull){ break;}list.add(line);} } catch (Exception e) { e.printStackTrace(); } return list;}
}总结
仅限个人学习有很多不完善的地方。