上文介绍了部分配置,本文主要是写多线程开启cmd,连接appium server,联动模拟器上的app。讲解多app登录账户分配,多模拟器上不同app搜索数据分配问题。主要是采取redis管道监控

主要的思路是一台appium_server对应一台模拟器或手机,一个机器运行的不同的app,以规避检测。目前模拟器端已实现,只是资源太重8g内存电脑只能运行3个左右模拟器再多就会cpu爆满
上代码:
1导模块

import time
#这些是我自己文件配饰好的
from appium_config import Appium_Configs        #appium配置文件
from jietiao import appiumMainTest              #app1的文件
from jtapp import jtMainTest                    #app2的文件
from jdb1 import jdbMainTest                    #app3的文件
from sql import Sql_all                         #sql文件之前文章有介绍
import threading

2初始化,主要是一些导包

app_count =-1#该参数必须共享才能在不同线程的永真循环保证同时单模拟器不一样的app运行
class Agoda(threading.Thread):__pool = None_instance_lock = threading.Lock()def __init__(self,port, udid,threadID, name, counter):threading.Thread.__init__(self)self.threadID = threadIDself.name = nameself.counter = counterself.sql_all=Sql_all()self.port=portself.udid=udidself.app_list = [ "jietiao","jdb","jtds"]#"jtds",self.jietiao_redis_key="jietiao_search_user"self.jtapp_redis_key = "jtds_search_user"self.jdb_redis_key = "jdb_search_user"self.jietiao = appiumMainTest()self.jtapp = jtMainTest()self.jdb = jdbMainTest()#线程主函数def run(self):# 如果单个进程的key取完将会中止self.app_run(self.udid, self.port)

3主控制器,self.jietiao_redis_key,self.jtapp_redis_key,self.jdb_redis_key
每个app需要搜索的用户队列,都搜索完毕结束所有线程

    def app_run(self,udid, port):"""不同的app具有自己的redis用户key,只有三个key同时为空关掉程序,有一个为空就pass掉要锁一下:param udid::param port::return:"""global app_countjietiao_redis = ''jtapp_redis = ''jdb_redis = ''while True:#在开始判断为空终结线程#监控搜索用户with Agoda._instance_lock:#线程锁加上redis管道监控保证同一时间只有一个线程在使用jietiao_redis = int(self.sql_all.scard_redis(self.jietiao_redis_key))jtapp_redis = int(self.sql_all.scard_redis(self.jtapp_redis_key))jdb_redis = int(self.sql_all.scard_redis(self.jdb_redis_key))if app_count >= (len(self.app_list) - 1):app_count = -1app_count += 1if jietiao_redis == 0 and jtapp_redis == 0 and jdb_redis == 0:returnprint(app_count)print(udid,port)print(self.app_list[app_count])print("111111111111111111111111111111111111111111")#通过app_list实现单模拟器切换APP,单线程代表一个模拟器,永真不断切换,app内部设定时间退出本次循环切换app#借条大师if self.app_list[app_count] == "jtds":if jietiao_redis == 0:passelse:print(23232323232321323232)if not self.jietiao.main(udid, port,self.jietiao_redis_key):break#借条大师elif self.app_list[app_count] == "jietiao":if jtapp_redis == 0:passelse:print(45454545454545454454)if not self.jtapp.main(udid, port,self.jtapp_redis_key):break#借贷宝elif self.app_list[app_count] == "jdb":if jdb_redis == 0:passelse:print(67676767676776)if not self.jdb.main(udid, port,self.jdb_redis_key):break# print("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!")

4多线程控制及开启多appium_server

if __name__ == '__main__':threaList = []appium_config =Appium_Configs()port = 4723host = '127.0.0.1'process_count= 0# 创建的cmd窗口等于队列最大size,控制appium_server数量while process_count <2:udid = host + ":" + str(21503 + 10 * process_count)#逍遥udid增加模式# 检查端口是否登录if appium_config.isOpen(host, port):passelse:thread = "thread-%s" % process_countappium_config.appium_start(host, port)#开启了appium_server接下来联通appthreadlist=Agoda(port, udid,process_count,thread,process_count)threaList.append(threadlist)process_count+= 1port += 2for i in threaList:i.start()for i in threaList:i.join()

好了基本思路就是这样,有问题请指正

app爬虫appium获取借贷宝,无忧等等(控制文件)相关推荐

  1. app爬虫appium获取借贷宝,无忧等等(配置文件)

    首先了由于本文并不是走的api破解或是apk逆向的路子,所以各位勿喷.其次经过验证appium加上模拟器的路子不太好除非你用真机做的(这类需求做游戏项目之内可以试试),当然可能是我没get到正确的姿势 ...

  2. python爬虫(14)获取淘宝MM个人信息及照片(中)

    python爬虫(14)获取淘宝MM个人信息及照片(中) python爬虫(14)获取淘宝MM个人信息及照片(上) python爬虫(14)获取淘宝MM个人信息及照片(下)(windows版本) 在上 ...

  3. python爬虫(14)获取淘宝MM个人信息及照片(上)

    python爬虫(14)获取淘宝MM个人信息及照片(上) python爬虫(14)获取淘宝MM个人信息及照片(中) python爬虫(14)获取淘宝MM个人信息及照片(下)(windows版本) 网上 ...

  4. APP爬虫--appium提取数据

    利用appium自动控制移动设备并提取数据 学习目标 了解 appium-python-client模块定位元素以及提取其文本内容的方法 了解 appium-python-client模块控制滑动动作 ...

  5. Python爬虫之获取淘宝商品数据

    爬取淘宝信息数据 首先需要先导入webdriver from selenium import webdriver webdriver支持主流的浏览器,比如说:谷歌浏览器.火狐浏览器.IE浏览器等等 然 ...

  6. Python爬虫之获取淘宝商品信息

    首先需要先导入webdriver from selenium import webdriver 复制代码 webdriver支持主流的浏览器,比如说:谷歌浏览器.火狐浏览器.IE浏览器等等 然后可以创 ...

  7. Appium+Python安卓自动化测试之启动APP和配置获取

    Appium+Python安卓自动化测试之启动APP和配置获取 本文章未讲述appium+python环境部署,环境部署会新开文章 一.手机连接电脑 1.USB连接电脑和手机,手机上点确认连接(最好用 ...

  8. JAVA+appium+夜神模拟器实现APP爬虫

    JAVA+appium+夜神模拟器实现APP爬虫 爬虫需要 appium server: 一个APP自动化测试框架 C/S架构 服务端由node.js开发 客户端支持多种语言,底层使用netty通信. ...

  9. 淘宝APP数据如何获取

    随着中国互联网的快速发展,淘宝APP已成为了人们购物必备的应用程序之一.作为中国最大的在线购物平台之一,淘宝APP每天都会生成海量的交易数据,这些数据对分析消费者行为.预测市场趋势和优化商家运营都非常 ...

最新文章

  1. R语言可视化学习笔记之ggridges包
  2. Python-OpenCV学习 -- 台式机外接USB摄像头的视频读取
  3. asp.net core监控—引入Prometheus(六)
  4. html js清除缓存,js清除浏览器缓存的几种方法
  5. Spring 事务相关及@Transactional的使用建议
  6. 【学习笔记】第三章——内存 IV(虚拟内存、请求分页、页面置换、缺页中断、抖动现象)
  7. eyoucms内容添加发布
  8. 此计算机中未配置默认浏览器,飞火浏览器设置默认浏览器失败了怎么办-飞火浏览器设置默认浏览器的方法 - 河东软件园...
  9. oracle及mysql错误记录
  10. 科睿唯安官网更新SCI期刊列表,慎投2月已被剔除期刊
  11. PHP/PHPStudy所需的VC9-VC14的运行库
  12. Javaweb免费RDP报表工具常用函数的用法总结
  13. 【ETL工具】-Kettle详细教程
  14. 什么是网络操作系统?网络操作系统具有那些基本功能?
  15. VSCode svn忽略文件提交
  16. 文本分类——怎么将二分类模型应用到多分类问题?
  17. 安卓设计师不容错过的15款实用UI界面设计工具
  18. 从血红细胞衰老看中老年疑难病和亚健康--
  19. 2012百度校园招聘笔试杭州站
  20. 前端学习之HTML第二天

热门文章

  1. 别人总结的英语网站大全
  2. 动态规划求解最短路径问题
  3. AMiner 会议论文推荐第十八期
  4. PHP中邮箱地址的正则表达式,php邮箱地址正则表达式实现与详解,邮箱地址正则表达式_PHP教程...
  5. IDEA提高启动和运行速度
  6. java 黑皇后_2n皇后问题
  7. php淘金农场源码_欢乐农场源码 淘金农场源码欢乐农场游戏网站 php开源版
  8. 步进电机的8拍驱动函数示例
  9. 四相八拍步进电机驱动
  10. Onedrive本地文件夹打开慢,卡顿问题 -- 一个可能的原因和解决办法