通过影刀rpa实现手机小红书养号、自动批量关注

大家好,我是10年码农大兵,目前是一位RPA定制开发者,计划帮忙开发并开源20个RPA机器人项目,如果您有rpa或相关自动化开发需求,欢迎发私信和我交流。
本次开源的RPA项目是:小红书养号、自动关注机器人

需求描述

使用影刀RPA模拟人工在小红书手机app上进行查看推荐的文章或视频,去关注内容中有包含双向奔赴、秒回关、必回等关键字的博主来实现涨粉。全程可24小时自动操作,解放双手

开发环境:

软件:
影刀ShadowBot-5.20.22-x64.exe
设备:
小米手机note3
手机app:
手机小红书8.23.1


功能实现:

影刀新增应用
在这里插入图片描述
选择手机自动化
在这里插入图片描述
新建python模块
在这里插入图片描述
在这里插入图片描述

复制以下的源码到新建的python模块module1.py文件中

# 使用提醒:
# 1. xbot包提供软件自动化、数据表格、Excel、日志、AI等功能
# 2. package包提供访问当前应用数据的功能,如获取元素、访问全局变量、获取资源文件等功能
# 3. 当此模块作为流程独立运行时执行main函数
# 4. 可视化流程中可以通过"调用模块"的指令使用此模块

import xbot
from xbot import print, sleep
from .import package
from .package import variables as glv
from xbot.mobile import appium
from xbot import excel
from datetime import datetime
import random
import os


def contains_any_keyword(s, keywords):
  for keyword in keywords:
    if keyword in s:
      return True
  return False

def viewBook(session):
  print("查看笔记")
  sleep(2)
  #上拉
  session.swipe(500, 1200, 500, 400)
  wait_time = random.randint(3, 8)
  print(f"等待{wait_time}秒")
  sleep(wait_time)
  #关注按钮
  try:
    element = session.find_by_id("com.xingin.xhs:id/followTV")
  except Exception as e:
    print("没有关注按钮")
    session.back()
    return
  gzbtn = element.get_text()
  if(gzbtn == "已关注"):
    print("已关注")
    session.back()
    return
  randInt = random.randint(1,3)
  if(randInt == 3):
    element2 = session.find_by_id("com.xingin.xhs:id/e63")
    username = element2.get_attribute("content-desc")
    print("关注"+username)
    element.click()
    global gzNum
    gzNum = gzNum + 1
    print(f"已关注 {gzNum}")

  sleep(1)
  session.back()

def readLog(filepath):
  number = 0
  # 检查文件是否存在
  if not os.path.exists(filepath):
    # 如果文件不存在,则创建文件并写入0
    with open(filepath, "w") as file:
      file.write("0")
  else:
    # 如果文件存在,则读取文件中的整数,将其设置为100,并写回文件
    with open(filepath, "r") as file:
      number_str = file.read().strip()  # 读取内容并去除前后空白
      try:
        number = int(number_str)  # 尝试将字符串转换为整数
      except ValueError:
        new_number = 0
  return number

def writeLog(filepath,number):
    with open(filepath, "w") as file:
     file.write(str(number))

#今日已经关注人数
gzNum = 0
#最多关注人数
maxGZNum = 100
def main(args):
  logpath = "C:\\小红书日志"
  current_date = datetime.now().strftime("%Y-%m-%d")
  filename = f"{current_date}.txt"
  filepath = os.path.join(logpath, filename)
  if not os.path.exists(logpath):
    os.makedirs(logpath)
    print(f"创建了目录: {logpath}")
  global gzNum
  #今日已经关注人数
  gzNum = readLog(filepath)
  #最多关注人数
  maxGZNum = 100
  if(gzNum >= maxGZNum):
    print("今日已经关注人数达到最大值,退出程序")
    exit()
  session = appium.connect_by_custom_name('Mi Note 3')
  session.open_app("com.xingin.xhs")
  sleep(1)
  while(True):
    #点击首页
    print("刷新首页")
    elements = session.find_all_by_id("com.xingin.xhs:id/i5o")
    element = elements[0]
    element.click()
    sleep(1)
    keywords = ["新人", "奔赴", "双向", "养号", "回关", "秒回", "互助", "关注"]
    maxlen = 3
    for t in range(maxlen):
      elements = session.find_all_by_xpath('/hierarchy/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/androidx.drawerlayout.widget.DrawerLayout/android.widget.LinearLayout/android.widget.RelativeLayout/androidx.viewpager.widget.ViewPager/android.view.ViewGroup/android.widget.FrameLayout/androidx.viewpager.widget.ViewPager/android.view.ViewGroup/android.view.ViewGroup/androidx.viewpager.widget.ViewPager/android.widget.FrameLayout/android.view.ViewGroup/androidx.recyclerview.widget.RecyclerView/android.widget.FrameLayout')
      for i in range(len(elements)):
        element = elements[i]
        content = element.get_attribute("content-desc")
        if(content.startswith("笔记") == False):
          continue
        if(contains_any_keyword(content, keywords)==False):
          continue

        print(content)
        element.click()
        sleep(2)
        viewBook(session)
        writeLog(filepath,gzNum)
        if(gzNum>= maxGZNum):
          print("今日已经关注人数达到最大值,退出程序")
          exit
      sleep(2)
      #上拉
      session.swipe(500, 1200, 500, 400)
   
      
   

电脑连接手机,修改相关源码的日志路径、当日最多关注人数及要连接的手机设备名称,点击运行
在这里插入图片描述

在这里插入图片描述

内容概要:本文档详细介绍了使用影刀RPA工具结合AI Agent技术,实现从Boss直聘网站自动采集岗位信息并保存至Excel文件的全过程。主要分为三个部分:一是通过XPath提取岗位要求,包括打开网页、模拟人工输入关键词、点击搜索按钮、获取相似元素列表并循环点击进入详情页,再通过XPath跨域获取具体岗位要求文本;二是将获取到的数据按单字段存储到Excel中,确保每条记录正确写入对应单元格;三是实现批量采集多页数据,利用循环机制翻页并重复采集流程,同时加入错误处理机制保证稳定性。最后还提及了与DeepSeek系统集成进行简历筛选并将结果同步到飞书的功能模块。 适合人群:对RPA技术和自动化办公感兴趣的初学者,以及希望提高工作效率的企业员工或HR从业者。 使用场景及目标:①掌握影刀RPA的基本操作方法,如新建标签页、模拟键盘鼠标事件、获取与操作网页元素等;②学会处理实际业务场景中的网页数据采集任务,尤其是针对招聘类网站的信息抓取;③熟悉Excel数据写入接口的应用,能够将非结构化数据整理成表格形式便于后续分析;④了解如何与其他第三方平台(如DeepSeek和飞书)对接,拓展RPA应用范围。 其他说明:文档提供了详细的步骤指引和技术细节说明,但需要注意的是,由于互联网环境变化较快,具体实现时可能需要根据目标网站结构调整相应参数或路径。此外,在实际部署前应充分考虑法律合规性和道德规范,确保数据采集行为合法正当。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值