当前位置 博文首页 > python实现半自动化发送微信信息

    python实现半自动化发送微信信息

    作者:fsociety_ 时间:2021-09-17 18:35

    本文实例为大家分享了python半自动化发送微信信息的具体代码,供大家参考,具体内容如下

    相关第三方库

    1.pyautogui
    自动操作鼠标、键盘的第三方库

    2.pyperclip
    用于将文本复制和粘贴到剪贴板

    3.requests
    HTTP第三方库

    4.psutil
    可以查看系统信息,进程、CPU等

    5.腾讯地图API
    因为我想实现发送定位,所以需要用

    总体思路

    1.先手动登录微信

    2.使用os模块调用微信进程

    3.使用pyautogui模块来自动操作微信的快捷键,实现搜索好友、发送信息,pyperclip模块用来复制需要发送的中文

    4.使用requests模块来调用腾讯地图的API

    具体代码

    # -*- coding: utf-8 -*
    import sys
    
    import psutil
    import pyautogui
    import time
    import os
    import pyperclip
    import json
    import requests
    
    
    def main():
        # 先确认是否登录微信
        confirms = pyautogui.confirm("微信已登录?", "请先登录微信!")
        if confirms == "Cancel":
            sys.exit()
        get_wechat()
        find_friend()
        msg = locate()
        # 发送内容
        send(msg)
    
    
    # 定位
    def locate():
        url = "https://apis.map.qq.com/ws/location/v1/ip?key=自己申请的key"
        session = requests.Session()
        # 取消代理
        session.trust_env = False
        resp = session.get(url)
        print(resp.json())
        adress = resp.json()
        print(adress["result"]["location"])
        # 获取到经纬度
        point = adress["result"]["location"]
        # 由经纬度获取定位
        pointUrl = "https://apis.map.qq.com/uri/v1/geocoder?coord=" + str(point["lat"]) + "," + str(
            point["lng"]) + "&referer=自己申请的key"
        print(pointUrl)
        return pointUrl
    
    
    def find_friend():
        pyautogui.hotkey("ctrl", "f")
        pyautogui.hotkey("ctrl", "a")
        pyautogui.hotkey("delete")
        content = pyautogui.prompt("请输入好友名:")
        if content is None:
            sys.exit()
        pyperclip.copy(content)
        pyautogui.hotkey("ctrl", "v")
        pyautogui.hotkey("enter")
    
    
    def send(msg):
        pyperclip.copy(msg)
        pyautogui.hotkey("ctrl", "v")
        pyautogui.hotkey("enter")
    
    
    # 查找进程
    def get_wechat():
        flag = False
        pids = psutil.process_iter()
        for p in pids:
            if p.name() == "WeChat.exe":
                flag = True
                print(p.name())
                print(p.exe())
                os.system(p.exe())
                break
            else:
                continue
        if not flag:
            pyautogui.alert("请先登录微信!")
    
    
    if __name__ == '__main__':
        pyautogui.FAILSAFE = True
        pyautogui.PAUSE = 0.2
        main()

    不足之处

    1、发送定位,发送的只能是一个链接,没有实现手机微信定位所实现的可预览的效果
    2、搜索好友时,没有辨别输入的是例如聊天内容等其他东西,所以需要用户确保自己输入的是好友名

    jsjbwy
    下一篇:没有了