python控制appium打开微信,并采集拼夕夕之多多买菜数据,供应学习,干货太多。

序言

python控制appium来采集电商数据越来越流行。拼夕夕之多多买菜数据非常难采集,他们用到了云函数,反爬也相当厉害。

郑重说明

我们研究技术只为了正常收集数据和分析数据。切勿攻击服务器,切勿违法互联网法律法规。一下代码仅供学习和研究。

用python控制appium打开微信代码如下:

from appium.webdriver import Remote  # 引入打开软件的包

# app的启动参数
desired_cap = {
    "platformName": "Android",  # 手机系统
    "platformVersion": "9",  # 手机系统版本
    "deviceName": 'HUAWEI',  # 手机的名字,不会进行校验,但是没有会报错
    "automationName": "UiAutomator2",  # 自动化测试框架 (1.4以上的appium不用写)
    "appPackage": "com.tencent.mm",  # app包名
    "appActivity": ".ui.LauncherUI",  # app的启动页面
}

driver = Remote(command_executor='http://127.0.0.1:4723/wd/hub', desired_capabilities=desired_cap)

启动代码如下:

# coding=utf-8
import json
import os.path
from os import system
from multiprocessing import Pool
import time

from base.base_api import BaseApi
from base.base_root import BaseRoot
from po.bangdanwechat_page import BangDanWechatPage
from po.ddmcwechat_page import DdmcWechatPage


def main(device_info):
    print(f"###########################################{device_info} start#########################################")
    showtime = time.strftime('%Y-%m-%d', time.localtime(time.time()))


    batchtime = time.time()


    curpath = BaseRoot.root_path
    folder = f"/log/{showtime}/"
    if not os.path.exists(curpath + f'/{folder}/'):
        os.makedirs(curpath + f'/{folder}/')

    ########调接口 请求要采集的货仓数据########
    '''
    warehouseName: 新疆
    warehouseCode: 650000000000
    warehouseSonName: 乌鲁木齐
    warehouseSonCode: 650100000000
    '''





    biaoshi = input("请输入本地标示 例如:新疆-乌鲁木齐:")
    if len(biaoshi) == 0:
        biaoshi = input("请输入本地标示 例如:新疆-乌鲁木齐:")

    biaoshicontent = biaoshi.split('-')
    mydict = {}
    mydict['warehouseName'] = biaoshicontent[0]
    mydict['warehouseSonName'] = biaoshicontent[1]
    response_text = BaseApi.getFetchConfigData(mydict)

    biaoshi_dict = json.loads(response_text)




    fetch_address = json.loads(biaoshi_dict['data']['fetch_address'])
    fetch_cates = json.loads(biaoshi_dict['data']['fetch_cates'])




    '''
    {'code': 0, 'msg': 'success', 'time': '1679644488', 'data': {
    'fetch_address': 
    '{"shop": "客人店",
     "warehouseCode": "650000000000",
      "warehouseName": "新疆", 
      "warehouseSonCode": "650100000000",
       "warehouseSonName": "乌鲁木齐"}',
     'fetch_cates': 
     '{  "上新": 1,  "百货": 1,  "洗护": 1,   "花卉": 1,  "电器": 1 }'}}
    '''



   ####存标示#####
    biaoshi_json = {}



    sava_path_dir = curpath + folder + f'{device_info}-biaoshi-{biaoshi}.json'

    if not os.path.isfile(sava_path_dir):

        '''
        warehouseName = input("请输入货仓省份 例如:新疆:")
        warehouseSonName = input("请输入货仓地区 例如:乌鲁木齐:")
        warehouseCode = input("请输入省份码 例如:650000000000:")
        warehouseSonCode = input("请输入货仓地区码 例如:650100000000:")
        downfenlei = input("请输入下载的分类 例如:{\"上新\": 1, \"百货\": 1, \"洗护\": 1, \"花卉\": 1, \"电器\": 1}:")
        down_cates = json.loads(downfenlei)
        '''
        warehouseName = fetch_address['warehouseName']
        warehouseSonName = fetch_address['warehouseSonName']
        warehouseCode = fetch_address['warehouseCode']
        warehouseSonCode = fetch_address['warehouseSonCode']
        down_cates =fetch_cates

        print(warehouseName)
        print(warehouseSonName)
        print(warehouseCode)
        print(warehouseSonCode)
        biaoshi_json['warehouseName'] = warehouseName
        biaoshi_json['warehouseSonName'] = warehouseSonName
        biaoshi_json['warehouseCode'] = warehouseCode
        biaoshi_json['warehouseSonCode'] = warehouseSonCode
        biaoshi_json['down_cates'] = down_cates

        json.dump(biaoshi_json, open(sava_path_dir, 'w'), indent=4)

    else:
        with open(sava_path_dir, 'r', encoding="utf-8") as f:
            biaoshi_json = json.load(f)
            warehouseName = biaoshi_json['warehouseName']
            warehouseSonName = biaoshi_json['warehouseSonName']
            warehouseCode = biaoshi_json['warehouseCode']
            warehouseSonCode = biaoshi_json['warehouseSonCode']
            down_cates = biaoshi_json['down_cates']




    ####存标示#####


    ########调接口 请求要采集的货仓数据########

    #bangdan_json ={"xiaoliangbang":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0}
    #目前只采集新品榜
    bangdan_json ={"4":0}



    sava_path_dir = curpath + folder + f'{device_info}-bangdan-{warehouseName}-{warehouseSonName}.json'

    
    if not os.path.isfile(sava_path_dir):
        json.dump(bangdan_json, open(sava_path_dir,'w'), indent=4)

    else:
        with open(sava_path_dir, 'r', encoding="utf-8") as f:
            bangdan_json= json.load(f)






    BangDanWechatPage(device_info).run(bangdan_json,sava_path_dir,batchtime,warehouseName,warehouseSonName,warehouseCode,warehouseSonCode)
    print(f"###########################################{device_info} end#########################################")

    time.sleep(10)
    print(f"###########################################分类采集开始#########################################")

    caiji_json ={"tuijian":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0}

    sava_path_dir = curpath + folder+ f'{device_info}-products-{warehouseName}-{warehouseSonName}.json'
    if not os.path.isfile(sava_path_dir):
        json.dump(caiji_json, open(sava_path_dir,'w'), indent=4)

    else:
        with open(sava_path_dir, 'r', encoding="utf-8") as f:
            caiji_json= json.load(f)

    #down_cates = {"上新": 1, "百货": 1, "洗护": 1, "花卉": 1, "电器": 1}


    DdmcWechatPage(device_info).run(caiji_json,sava_path_dir,down_cates,batchtime,warehouseName,warehouseSonName,warehouseCode,warehouseSonCode)



    return "ok"


if __name__ == '__main__':
    device_info = input("请输入设备 例如:62001:")
    system(f"title {device_info}")
    main(device_info)

注意事项:项目代码只是为了大家共同学习和共同进步,技术在正直人手里可以改变世界,技术在不法之人手里会危害世界。我们一定要遵纪守法。

以上代码百分百原创,喜欢可以私信。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

逆向导师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值