闲鱼APP爬虫

闲鱼APP爬虫

2023年6月29日发(作者:)

闲鱼APP爬⾍写在前⾯:实现闲鱼APP的特定关键字商品检索实现思路:⾸先想到使⽤此前⽤到的appium驱动app实现数据获取和订单⽣成,⽽后通过app抓包分析获取接⼝实现⾸先是搭建环境,此前进⾏⼯作时,搭建过环境,积累了⼀定经验,现总结如下1.1前⾔知识appium 是⼀个⾃动化测试开源⼯具,⽀持 iOS 平台和 Android 平台上的原⽣应⽤,web应⽤和混合应⽤。“移动原⽣应⽤”是指那些⽤iOS或者 Android SDK 写的应⽤(Application简称app)。“移动web应⽤”是指使⽤移动浏览器访问的应⽤(appium⽀持iOS上的Safari和Android上的 Chrome)。“混合应⽤”是指原⽣代码封装⽹页视图——原⽣代码和 web 内容交互。⽐如,像 Phonegap,可以帮助开发者使⽤⽹页技术开发应⽤,然后⽤原⽣代码封装,这些就是混合应⽤。重要的是,appium是⼀个跨平台的⼯具:它允许测试⼈员在不同的平台(iOS,Android)使⽤同⼀套API来写⾃动化测试脚本,这样⼤⼤增加了iOS和Android测试套件间代码的复⽤性。

appium类库封装了标准Selenium客户端类库,为⽤户提供所有常见的JSON格式selenium命令以及额外的移动设备控制相关的命令,如多点触控⼿势和屏幕朝向。appium客户端类库实现了Mobile JSON Wire Protocol(⼀个标准协议的官⽅扩展草稿)和W3C WebDriver spec(⼀个传输不可预知的⾃动化协议,该协议定义了MultiAction 接⼝)的元素。appium服务端定义了官⽅协议的扩展,为appium ⽤户提供了⽅便的接⼝来执⾏各种设备动作,例如在测试过程中安装/卸载App。这就是为什么我们需要appium特定的客户端,⽽不是通⽤的Selenium 客户端。当然,appium 客户端类库只是增加了⼀些功能,⽽实际上这些功能就是简单的扩展了Selenium 客户端,所以他们仍然可以⽤来运⾏通⽤的Selenium会话。

1.2环境配置1)安装,直接下载安装即可因为appium是基于实现的,需要提前安装通过node -v 查看版本,确定是否安装成功2)安装JDK,及配置环境变量JDK为java开发环境,⽹上教程较多,可以参考如下链接:3)安装SDK,及配置环境变量SDK时andriod开发的⼯具包,是安卓开发必备的,在appium测试中需要使⽤其中的⼀些资源程序,并配置环境变量以便调⽤下载界⾯如下:注意下载后打开SDK 并安装资源库,注意安装与android版本⼀致的API⽽后配置ANDROID_HOME环境变量为android-sdk⽂件夹并添加%ANDROID_HOME%tools%ANDROID_HOME%platform-tools输⼊adb version测试4)安装Appium桌⾯版本最新版appium没有appium-doctor程序进⾏检查,可以通过nodejs下载,进⾏检查是否配置成功1.3开始测试使⽤python进⾏测试,⾸选需要安装python的appium-python-client库⾸先打开雷电模拟器,使⽤adb devices查看是否连接成功成功后,启动appium,运⾏python程序# 导⼊webdriverfrom appium import webdriverfrom import Byfrom import WebDriverWaitfrom t import expected_conditions as ECimport time# 初始化参数desired_caps = { 'platformName': 'Android', # 被测⼿机是安卓 'platformVersion': '5.1.1', # ⼿机安卓版本 'deviceName': 'emulator-5554', # 设备名,安卓⼿机可以随意填写 'appPackage': 'sh', # 启动APP Package名称 'appActivity': 'tivity', # 启动Activity名称 'noReset': True, # 不要重置App,如果为False的话,执⾏完脚本后,app的数据会清空,⽐如你原本登录了,执⾏完脚本后就退出登录了}# 连接Appium Server,初始化⾃动化环境driver = ('localhost:4723/wd/hub', desired_caps)wait = WebDriverWait(driver, 30)search_entry = (ce_of_element_located((, 'sh:id/search_bar_layout')))search_()search_name = (ce_of_element_located((_NAME, 'xt')))search__text('redmik30')search_button = (ce_of_element_located((, "//*[@text='搜索']")))search_()(ce_of_element_located((_NAME, "View")))# (10)while True: (500, 1900, 500, 300, 300) items = (ce_of_all_elements_located((, "//*[@class='View']/"))) for item in items: print(item)由于前期没有android基础,对于desired_caps参数不了解,⾛了很多弯路appPackage和appActivity通过adb命令可查看通过命令:adb shell dumpsys window w |findstr |findstr name=查看相关属性抓包分析2.1使⽤代理抓包通过fildder代理抓包,开始fildder后,在雷电模拟器设置系统代理经测试浏览器流量成功被代理、但app流量代理失效经过查阅资料治app⾃动忽略系统代理,通过下载全局代理软件proxyDroid实现全局代理,进⽽绕过成功获取数据包2.2分析接⼝查看请求,发现闲鱼搜索请求参数存在加密,难以分析,如果要进⾏后续分析需要学习安卓逆向知识,进⾏源码分析

发布者:admin,转转请注明出处:http://www.yc00.com/news/1687982169a63475.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信