一个一个添加好友太麻烦,教你全自动添加好友

一个一个添加好友太麻烦,教你全自动添加好友

因为某种原因,需要在微信上添加大量的好友,打开微信,添加,添加好友,搜索,输入微信号,搜索,添加备注。

一阵操作下来,黄花菜都凉了,我看着我都着急,这可是有10000多的好友呀!!!

假如平均每5分钟添加一个好友,就需要50000分钟,833小时,假如每天算8小时,不停的添加好友。104天,每月30天,大概3个月就可以添加完成,到时候,我想你已经吐了。

想想,3个月时间,我们可以做什么,我们可以提升一个王者段位,可以外出旅行,可以多陪陪家人。

而现在,你距离你的梦想又救了一步,只需要一个程序,你就可以搞定手动添加好友的尴尬。让他自己动。

首先,我们来准备环境!

1.jdk

2.sdk

3.appium

4.node.js

5.一部手机,当然是智能手机。

6.一条数据线。

相关环境后期会做补充,这次主要是程序。

好,那下面看代码:

from appium import webdriver
import time
import xlrd

def is_content_Appeared(driver,content):
    try:
        driver.find_element_by_name(content)
        status=True
    except:
        status = False
    return status

desired_caps = {

                ‘platformName’: ‘Android’,
                ‘deviceName’: ‘232342232343’,
                ‘platformVersion’: ‘7.0’,#将要测试app的安装包放到自己电脑上执行安装或启动,如果不是从安装开始,则不是必填项,可以由下面红色的两句直接启动
                ‘appPackage’: ‘com.tencent.mm’, #红色部分如何获取下面讲解
                ‘appActivity’: ‘com.tencent.mm.ui.LauncherUI’,
                ‘unicodeKeyboard’: ‘True’, #此两行是为了解决字符输入不正确的问题
                ‘resetKeyboard’: ‘True’, #运行完成后重置软键盘的状态  
                ‘autoWebview’:’True’,
                ‘recreateChromeDriverSessions’:’True’,
                ‘automationName’:’Appium’
}
j,y=1,1000
list=[]
driver = webdriver.Remote(‘http://127.0.0.1:4723/wd/hub’, desired_caps)
for x in range(1,5):
    try:
        time.sleep(3)
        driver.find_element_by_id(“com.tencent.mm:id/g_”).click()
        time.sleep(3)
        driver.find_element_by_name(“添加朋友”).click()
        driver.find_element_by_id(“com.tencent.mm:id/ht”).click()
        xlsfile = r’C:\好友.xls’
        book = xlrd.open_workbook(xlsfile)  # 获得excel的book对象
        sheet_name = book.sheet_names()[0]  # 获得指定索引的sheet名字
        sheet = book.sheet_by_name(“Sheet1”)
        for i in  range(j,y):
            try:
                time.sleep(20)
                cell_value = int(sheet.cell_value(i, 2))#获取电话号码
                print(cell_value)
                driver.find_element_by_id(“com.tencent.mm:id/ht”).send_keys(cell_value)#输入电话号码
                time.sleep(3)
                driver.find_element_by_id(“com.tencent.mm:id/ayp”).click()
                time.sleep(3)
                if is_content_Appeared(driver,”添加到通讯录” )==True:
                    if is_content_Appeared(driver,”设置备注和标签”)==True:
                        driver.find_element_by_name(“设置备注和标签”).click()
                        time.sleep(3)
                        driver.find_element_by_name(“添加标签对联系人进行分类”).click()
                        time.sleep(3)
                        cell_value1 = sheet.cell_value(i, 3)  # 获取标签名
                        driver.find_element_by_name(“添加标签”).send_keys(cell_value1)
                        time.sleep(3)
                        driver.find_element_by_name(“保存”).click()
                        time.sleep(3)
                        driver.find_element_by_id(“com.tencent.mm:id/hy”).click()
                        time.sleep(3)
                        driver.find_element_by_name(“添加到通讯录”).click()
                        time.sleep(3)
                        driver.find_element_by_id(“com.tencent.mm:id/d0n”).clear()#清除备注名
                        time.sleep(3)
                        ell_value2 = sheet.cell_value(i, 0)
                        ell_value3 = sheet.cell_value(i, 1)
                        driver.find_element_by_id(“com.tencent.mm:id/d0n”).send_keys(ell_value2+”(“+ell_value3+”)”)#输入被备注名
                        time.sleep(3)
                        driver.find_element_by_name(“发送”).click()
                        time.sleep(3)
                        print(“成功发送验证消息!”)
                        driver.find_element_by_name(“返回”).click()
                        time.sleep(3)
                    else:
                        driver.find_element_by_name(“添加到通讯录”).click()
                        time.sleep(3)
                        driver.find_element_by_id(“com.tencent.mm:id/d0n”).clear()  # 清除备注名
                        time.sleep(3)
                        ell_value2 = sheet.cell_value(i, 0)
                        ell_value3 = sheet.cell_value(i, 1)
                        driver.find_element_by_id(“com.tencent.mm:id/d0n”).send_keys(
                            ell_value2 + “(” + ell_value3 + “)”)  # 输入被备注名
                        time.sleep(3)
                        driver.find_element_by_name(“发送”).click()
                        time.sleep(3)
                        print(“成功发送验证消息!”)
                        driver.find_element_by_name(“返回”).click()
                        time.sleep(3)
                elif is_content_Appeared(driver,”该用户不存在”)==True:
                    print(“该用户不存在”)
                    driver.find_element_by_id(“com.tencent.mm:id/ht”).clear()
                    time.sleep(3)
                elif is_content_Appeared(driver,”发消息”)==True:
                    print(“该用户已经添加为好友”)
                    driver.find_element_by_name(“返回”).click()
                    time.sleep(3)
                elif is_content_Appeared(driver,”操作过于频繁,请稍后再试”)==True:
                    print(“操作过于频繁,今天可能不能再添加好友,程序退出”)
                    driver.quit()
                    break
                else:
                    driver.save_screenshot(“D:\\app”+i+”.png”)
                    print(“其他情况”)
            except Exception as e:
                j=i
                driver.quit()
                time.sleep(3)
                driver = webdriver.Remote(‘http://127.0.0.1:4723/wd/hub’, desired_caps)
                continue
    except Exception as e:
        list.append(e)
        driver.quit()
        time.sleep(3)
        driver = webdriver.Remote(‘http://127.0.0.1:4723/wd/hub’, desired_caps)
        continue
    break
driver.quit()

 

 

 

了解更多,欢迎关注公众号,获取更多源代码。

获取相关自动添加好友软件,微信公众号,回复   “自动加好友”   获取网盘链接。

 

一个一个添加好友太麻烦,教你全自动添加好友

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/111428.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • shell输出数组元素_shell中使用数组

    shell输出数组元素_shell中使用数组数组介绍平时的定义a=1,b=2,c=3,变量如果多了,再一个一个定义很费劲,并且取变量的也费劲简单的说,数组就是相同数据类型的元素按一定顺序排列的集合数组就是把有限个类型相同的变量用一个名字命名,然后用编号区分他们得边合。这个名字成为数组名,编号成为数组下标。组成数组的各个变量成为数组的分称为数组的元素,有时也称为下标变量数组定义与增删改查法1:array=(value1value2valu…

    2025年7月23日
    3
  • c语言中(int)什么意思_c语言中怎么用int转化char

    c语言中(int)什么意思_c语言中怎么用int转化char1、int;int是C++关键字,表示整型,其大小是32位有符号整型,表示的范围是-2,147,483,648 到2,147,483,647;在声明和定义变量时使用,它表示的意思是所声明或所定义的变量为整型变量。如果其用于函数参数时,其传递方向为值传递,即只能将实参的值传递给形参,而不能将形参的值传递给实参。例如:通过这种方式去进行交换两个数是无法达到目的的。例子1:#include&…

    2022年8月18日
    6
  • 国产化替代方案_excel表格为什么替换不了

    国产化替代方案_excel表格为什么替换不了PHPExcel上一版本1.8.1于2015年发布。该项目已不再维护,可以使用,但是不建议再使用。所有用户都应该迁移到其直接后继者PhpSpreadsheet或其他替代方案。PhpSpreadsheet打破了兼容性,大大提高了代码库质量(命名空间,PSR合规性,最新PHP语言功能的使用等)。文档地址:https://phpspreadsheet.readthedocs.io/en/develo…

    2022年9月17日
    4
  • DrawerLayout

    DrawerLayout用DrawerLayout作侧滑时,需要注意以下两点:1.只接受两个子控件,第一个子控件相当于主屏幕,第二个子控件相当于侧滑屏幕;2.第二个子控件需要添加android:layout_gravity属性,否则不能侧滑。<?xmlversion="1.0"encoding="utf-8"?><android.support.v4.widget.DrawerLa…

    2022年6月29日
    25
  • lucene2.4.1的TokenStream

    lucene2.4.1的TokenStream[code="java"]importjava.io.IOException;importorg.apache.lucene.analysis.Token;importorg.apache.lucene.index.Payload;/***TokenStream用来分析文字流,按一定的规则罗列token,在lucene有字节流是即将要索引的文本,或者查询的关键字。…

    2022年7月22日
    6
  • PHP轻量级在线客服系统源码 自适应手机移动端「建议收藏」

    PHP轻量级在线客服系统源码 自适应手机移动端「建议收藏」简介:支持多商家支持多商家,每个注册用户为一个商家,每个商家可以添加多个客服。不限坐席每个商家可以无限添加坐席,不限制坐席数支持H5移动端系统自动适配移动端,也可以接入app(h5方式)支持微信公众号/微信小程序客服可以与微信公众号/小程序里的访客实时沟通常见问题自动回复支持设置常见问题,顾客可以点击常见问题系统会自动回复客服分组支持客服分组,例如售前客服,售后客服等,让专业的人员干专业的事情微信表情微信emoji表情全套支持发送图片、txt、zip、pdf、xls、doc…

    2022年7月19日
    21

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号