通过影刀rpa实现京东视频采集

大家好,我是十年码农大兵,目前是一位RPA定制开发者,计划帮忙开发并开源20个RPA机器人项目,如果您有rpa或相关自动化开发需求,欢迎发私信和我交流。
本次开源的RPA项目是:京东视频采集
如需要指定达人京东视频采集可以点击查看我这个文章
《通过影刀rpa实现达人京东视频采集》

需求描述

使用影刀RPA模拟人工在京东APP上浏览视频,获取视频地址再通过浏览器下载视频到电脑,具体采集流程如下:
1、影刀控制手机端自动刷京东精选的家电视频提取分享的视频链接
2、电脑用浏览器打开视频链接提取商品购物地址及视频地址,视频进行下载保存到电脑指定目录
3、将提取的视频名称、商品名称、商品链接、视频下载地址存至excel表格

开发环境:

软件:
影刀ShadowBot-5.20.22-x64.exe
设备:
小米手机note3
手机app:
京东APPV13.2.9 build100046
浏览器:谷歌浏览器(需安装影刀插件)
excel模版
在这里插入图片描述


应用分享地址:

影刀应用:
https://api.winrobot360.com/redirect/robot/share?inviteKey=c5a3ffa86bf5af27
密码:vw#ios520888

功能实现:

影刀新增应用
在这里插入图片描述
选择手机自动化
在这里插入图片描述
新建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
from xbot import word
from xbot import web
import urllib.request  
import shutil 
import re 


def sanitize_filename(filename):  
    """  
    清理文件名中的特殊字符。  
    这里简单地用下划线替换了一些常见的特殊字符,你可以根据需要修改这个函数。  
    """  
    # 注意:这个替换列表可能不完整,根据你的需要添加更多替换  
    return filename.replace('/', '_').replace('\\', '_').replace(':', '_').replace('?', '_').replace('*', '_').replace('"', '_').replace('<', '_').replace('>', '_').replace('|', '_')  


def download(url,path,name):
    name = sanitize_filename(name)
    filepath = os.path.join(path, name)
    with urllib.request.urlopen(url) as response, open(filepath, 'wb') as out_file:  
        data = response.read()  # 读取所有数据到内存(对于大文件可能不是最佳选择)  
        out_file.write(data)  # 写入文件 

def find_by_text(session,text):
     elements = session.find_all_by_label_name('android.widget.TextView')
     for t in range(len(elements)):
         element = elements[t]
         str = element.get_text()
         if(str == text):
             return element
     return None 

def find_text_plus(session,rid,text):
    elements = session.find_all_by_id(rid)
    for t in range(len(elements)):
      name = elements[t].get_text()
      if(name == text):
          return elements[t]
    return None


def openJdApp(session):
  print("打开京东APP")  
  session.open_app("com.jingdong.app.mall")
  sleep(2)
  element = find_by_text(session,"逛")
  element.click()
  sleep(2)
  print("选择精选-家电")
  element = find_text_plus(session,"com.jd.lib.Discovery.feature:id/mz","精选")
  element.click()
  sleep(5)
  element = find_text_plus(session,"com.jd.lib.Discovery.feature:id/sp","家电")
  element.click()
  sleep(3) 
  elements = session.find_all_by_id("com.jd.lib.Discovery.feature:id/o_")  
  element = elements[0]
  element.click()
  sleep(3) 

def getAppVideoUrl(session): 
  element = session.find_by_id("com.jd.lib.Discovery.feature:id/ug")
  element.click()
  sleep(1)
  #右滑动
  session.swipe(930, 1669, 78, 1669)
  sleep(1)
  element = find_text_plus(session,"com.jingdong.app.mall:id/dx","复制链接")
  element.click()
  sleep(1) 
  urlStr = session.get_clipboard_text()
  print(urlStr)
  start_index = urlStr.find('https')
  # 查找结束点:“「”的索引  
  end_index = urlStr.find('「')  
  if start_index != -1 and end_index != -1:  
      urlStr = urlStr[start_index:end_index]  
      urlStr = urlStr.strip() 
      print(urlStr)
  return urlStr

def writeRow(worksheet,index,videoName,shopName,shopUrl,videoUrl,downloadUrl,videoPath):
    # 获取当前时间  
    current_datetime = datetime.now()   
    # 使用正确的格式字符串来格式化时间  
    formatted_datetime = current_datetime.strftime("%Y-%m-%d %H:%M:%S") 
    worksheet.set_cell(index, 'A', videoName)
    worksheet.set_cell(index, 'B', shopName)
    worksheet.set_cell(index, 'C', shopUrl)
    worksheet.set_cell(index, 'D', videoUrl)
    worksheet.set_cell(index, 'E', downloadUrl)
    worksheet.set_cell(index, 'F', videoPath)
    worksheet.set_cell(index, 'G', formatted_datetime)

def getWebvideo(worksheet,index,downPath,videoUrl):
  print("浏览器获取视频信息及下载视频")
  videoPath = datetime.now().strftime("%Y-%m-%d")
  browser = web.create(videoUrl, 'chrome', load_timeout=20)
  sleep(5)
  #html = browser.get_html()
  #print(html)
  web_element = browser.find_by_xpath('//video')
  #print(web_element)
  #print(web_element.get_attribute("src"))
  downlodUrl = web_element.get_attribute("src")
  web_element = browser.find_all_by_css('.shopbag-item-skutitle')[0]
  shopName = web_element.get_text()
  web_element = browser.find_all_by_css('.desc-videotitle')[0]
  videoName = web_element.get_text()
  web_element.click()
  sleep(2)
  shopUrl = browser.get_url()
  print("采集视频:"+videoName)
  download(downlodUrl,downPath,videoName+".mp4")
  writeRow(worksheet,index,videoName,shopName,shopUrl,videoUrl,downlodUrl,videoPath)
  browser.close()




def main(args):
  current_datetime = datetime.now().strftime("%Y%m%d%H%M%S") 
  basePath = "C:\\京东视频采集"  
  videoPath = datetime.now().strftime("%Y-%m-%d")
  downPath = basePath+"\\"+videoPath 
  if not os.path.exists(downPath):
    os.makedirs(downPath)
    print(f"创建了目录: {downPath}")
  excelPath = basePath+"\\"+current_datetime+"_视频采集情况.xlsx"
  #复制模版
  shutil.copy(basePath+"\\模板\\京东.xlsx",excelPath) 
  workbook = excel.open(excelPath, kind='auto_check', visible=True)
  worksheet = workbook.get_sheet_by_index(1)
  session = appium.connect_by_custom_name('Mi Note 3')
  openJdApp(session)
  for i in range(5):
    videoUrl = getAppVideoUrl(session)
    index = i+2  
    getWebvideo(worksheet,index,downPath,videoUrl)
    session.swipe(500, 1200, 500, 400)
    sleep(2)
  workbook.save()  
  workbook.close()  
   
      
   

电脑连接手机,修改相关源码的视频存储路径、excel模板、要连接的手机设备名称,点击运行
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

淘图宝快速批量下载提取网店产品宝贝详情页图片、主图、颜色图的下载,以及手机详情页图片的批量一键转换。 操作技巧: 在提取页面 按【F1】可以快速显示/隐藏设置面板 特殊说明: 关于libeay32.dll、ssleay32.dll 这两个文件,OpenSSL Library 是开源的库, 网上到处都可以下载,很多软件都自带这些库,本软件自带的版本是1.0.0.7, 鉴于很多电脑可能没有安装这些库,所以都打包在一起,防止不能用。 国内某数字杀软可能会误报毒(其实大家把这两个文件复制到system32目录就不报毒了)。 如果大家不放心,可以自行到网上搜索并下载这两个dll文件(一般是0.9.0.*版本的), 安装到system32系统文件夹(或者程序根目录)里,原则上0.9.0.*版本的也可以使用。 功能介绍: 1,淘图宝是一款功能强大的产品详情页图片下载工具,可以帮助店家轻松下载别人店铺的产品图片,如主图、详细页面图,颜色图等。 该软件支持提取采集下载1688、淘宝、天猫、速卖通、美丽说、国美、敦煌、京东、苏宁易购、凡客诚品、衣联网、当当网等宝贝产品详情页图片。 (京东可直接提取下载无水印主图)双击列表可以在浏览器中查看任意图片的网址链接 2,下载完毕后,即可一键批量生成符合手机详情页要求的图片,一键生成、高效快捷。长图能智能切割,省时省力。生成的图片质量能任意调节, 生成的图片清晰度,效果绝非淘宝上的收费插件能比,高质量、高清晰度的手机详情图片可以提高您店铺的转换率 jpg、jpeg、gif、bmp、png 等网络常用格式的图片均支持直接转换成手机详情页图片,宽度、高度可调 3,纯绿色软件,软件无需安装,解压后即可运行试用,绿色环保不写注册表,不想使用时直接删除文件夹即可,不留任何痕迹。 4,独特软件内核,不限下载次数。即使频繁下载服务器有限制,也不需要重启电脑、重启路由器、清空浏览器COOKIES等无脑式的操作。 5,支持32位与64位的 Windows XP,Vista,7,8,10 (完美支持最新的Win10系统) 淘宝视频分析采集下载器 京东主图无水印提取下载
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值