闲鱼上哪些商品抢手?Python 分析后告诉你

点击上方“AirPython”,选择“置顶公众号”

第一时间获取 Python 技术干货!

阅读文本大概需要 10 分钟。

1

目 标 场 景

经常看到有朋友在闲鱼卖些小东西又或是自己擅长的一些技能,都能为他们带来不错的 睡后收入。

闲鱼上大量的商品,很难精准判断哪些受欢迎,哪些好卖;一个个录入数据去做数据分析,浪费时间的同时,效率也极其的低效。

本篇文章的目的是利用 Python 自动化 来获取某类商品中最好卖的商品以供参考。

ps:本文仅限用于技术交流,请勿用于其他用途。

2

准 备 工 作

在编写代码之前,需要做如下准备工作:

1、配置好 Android ADB 开发环境

2、Python 虚拟环境内安装 pocoui 依赖库

3、安装数据可视化依赖库 pyecharts

# pocoui
pip3 install pocoui

# 数据可视化图表
pip3 install pyecharts -U

3

编 写 代 码

我们分 7 个步骤来实现这个功能,分别是:打开目标应用客户端、检索关键字到商品列表界面、计算最佳滑动距离、筛选商品、获取商品链接地址、写入文件排序并统计商品、配置参数。

1 步,使用 pocoui 自动化打开目标应用。

def __pre(self):
    """
    准备工作
    :return:
    """
    home()
    stop_app(package_name)
    start_my_app(package_name, activity)


    # 等待到达桌面
    self.poco(text='闲鱼').wait_for_appearance()
    self.poco(text='鱼塘').wait_for_appearance()
    self.poco(text='消息').wait_for_appearance()
    self.poco(text='我的').wait_for_appearance()

    print('进入闲鱼主界面')

进入到闲鱼首页之后,应用端会拿到剪切板的数据,当存在特定规律的口令的时,会立马弹出一个对话框,因此需要模拟关闭对话框的操作。

# 如果指定时间内内有淘口令,就关闭
for i in range(10, -1, -1):
      close_element = self.poco('com.taobao.idlefish:id/ivClose')
      if close_element.exists():
            close_element.click()
            break
      time.sleep(1)

打开应用之后,就可以进行第 2 步操作了。

通过要检索的关键字,模拟输入到输入框内,然后点击搜索按钮,一直等待搜过列表出现为止。

另外,为了更加方便地处理数据,商品列表切换到列表模式,即一行只显示一个商品。

def __input_key_word(self):
    """
    输入关键字
    :return:
    """
    # 进入搜索界面
    perform_click(self.poco('com.taobao.idlefish:id/bar_tx'))

    # 搜索框内输入文本
    self.poco('com.taobao.idlefish:id/search_term').set_text(self.good_msg)

    # 点击搜索按钮
    while True:
         # 等待检索结果列表出现
         if not self.poco('com.taobao.idlefish:id/list_recyclerview').exists():
              perform_click(self.poco('com.taobao.idlefish:id/search_button', text='搜索'))
         else:
              break

    # 等待商品列表完全出现
    self.poco('com.taobao.idlefish:id/list_recyclerview').wait_for_appearance()

    # 切换到列表
    perform_click(self.poco('com.taobao.idlefish:id/switch_search'))

第 3 步,计算最佳滑动距离。

为了保证爬取数据的高效性,获取计算出每次滑动的最佳距离。

首先先拿到当前界面的 UI 控件树,然后通过控件的属性 ID 拿到商品的坐标,进而得到每一项商品的高度。

最后,通过观察屏幕中出现商品的数目得到最佳滑动距离。

def __get_good_swipe_distance(self):
    """
    获取每次滑动,最合适的距离
    :return:
    """
    element = Element()
    # 保存当前的UI树到本地
    element.get_current_ui_tree()

    # 第一个商品Item的坐标
    position_item = element.find_elment_position_by_id_and_index("com.taobao.idlefish:id/card_root",
                                                                     "1")
    # 商品的高度
    item_height = position_item[1][1] - position_item[0][1]

    # 通过观察,当前屏幕有3件商品
    return item_height * 3

4 步,筛选商品。

上面的步骤拿到最佳的滑动距离,不停的滑动页面遍历列表元素的子 Item。

需要注意的是,为了避免滑动惯性导致的误差,每一次的滑动时长最好设置为 2s 以上。

通过商品 Item 筛选出想要数目大于预设数字的商品。

# 多少人想要
want_element_parent = item.offspring('com.taobao.idlefish:id/search_item_flowlayout')

if want_element_parent.exists():
     # 想要数/已付款数目
     want_element = want_element_parent.children()[0]

     want_content = want_element.get_text()

     # 过滤掉【已付款】等其他商品,只保留个人发布商品
     if '人想要' not in want_content:
            continue

      # 拿到商品想要的具体数目,代表商品热度
      want_num = get_num(want_content)

      if int(want_num) < self.num_assign:
             # print('不达标,过滤掉')
             pass
      else:
            # 商品想要数达标,加入统计

 5 步,获取商品链接地址。

对于上一步满足条件的商品,点击商品 Item 进入到商品详情页面。

接着点击右上角的分享按钮,会立即弹出分享对话框。

然后点击口令控件,会提示口令复制到系统剪切板成功

# 点击更多
while True:
     if self.poco('com.taobao.idlefish:id/ftShareName').exists():
          break
     print('点击更多~')
     perform_click(self.poco(text='更多'))

# 点击复制淘口令
perform_click(self.poco('com.taobao.idlefish:id/ftShareName', text='淘口令'))

# 拿到口令码
taobao_code_element = self.poco('com.taobao.idlefish:id/tvWarnDetail')

taobao_code = taobao_code_element.get_text()        

 6 步,写入商品、排序并统计数据。

将上面获取到的商品标题、想要数、分享地址写入到 CSV 文件中。

然后读取数据文件,通过对表格中的第二列进行反向排序,使商品按照想要数进行降序排列。

def __sort_result(self):
    """
    对爬取的结果进行排序
    :return:
    """
    reader = csv.reader(open(self.file_path), delimiter=",")

    # 头部标题
    head_title = next(reader)

    # 按照第二列进行逆序排列
    sortedlist = sorted(reader, key=lambda x: (int(x[1])), reverse=True)

    # 写入头部数据
    write_to_csv(self.file_path, [(head_title[0], head_title[1], head_title[2])], False)

    for value in sortedlist:
       write_to_csv(self.file_path, [(value[0], value[1], value[2])], False)

    return sortedlist

最后拿到前 10 项数据,利用 pyecharts 生成统计图表。

def draw_image(self, sortedlist):
     """
     画图
     :param sortedlist:
     :return:
     """

     # 标题列表
     titles = []

     # 销量
     sales_num = []

     # 拿到爬取结果的标题、销量两个列表
     with open(self.file_path, 'r') as csvfile:
         # 读取文件
         reader = csv.DictReader(csvfile)

         # 加入列表中
         for row in reader:
             titles.append(row['title'])
             sales_num.append(row['num'])

     # 数目限制
     if len(titles) > self.num:
         titles = titles[:self.num]
         sales_num = sales_num[:self.num]

     # 画图
     bar = (
            Bar()
                .add_xaxis(titles)
                .add_yaxis("哪些好卖", sales_num)
                .set_global_opts(title_opts=opts.TitleOpts(title="我要卖货"))
        )
     bar.render('%s.html' % self.good_msg)

7 步,配置参数。

编写 yaml 文件,指定要爬取商品的关键字、爬取时间、想要数考核指标数、筛选商品数目。

goods:
  # 搜索商品1,包含搜索关键字、爬取时间
  good1:
    key_word: '资料'   # 搜索关键字
    key_num: 100  # 筛选【想要数】的临界点
    num: 10      # 只筛选爆款
    time: 600   # 爬取时间(秒)

4

结 果 结 论

提前配置好商品关键字、爬取时间等参数,即可以爬取到符合要求的、最好卖的商品数据,最终以图表的方式展示出来。


我已经将全部源码上传到后台,关注公众号后回复「 卖东西 」即可获得下载链接。

如果你觉得文章还不错,请大家点赞分享下。你的肯定是我最大的鼓励和支持。

推荐阅读:

聊聊 Airtest 自动化工具

自动化篇 - 躺着收钱!闲鱼自动发货机器人来啦~

THANDKS

- End -

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/56335.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

向消息延迟说bybye:闲鱼消息及时到达方案(详细)

背景 IM消息作为闲鱼用户重要的交易咨询工具&#xff0c;核心目标有两点&#xff0c;第一是保证用户的消息不丢失&#xff0c;第二是保证用户的消息及时送达接收方。IM消息根据消息的接收方设备是否在线&#xff0c;分为离线和在线推送&#xff0c;数据显示目前闲鱼每天有超过一…

java爬取闲鱼商品信息(一)

闲鱼真是一个很神奇的地方&#xff0c; 能让我等学生狗不用花很多钱就能体验科技的乐趣&#xff0c;当然&#xff0c;前提是别翻车。 好了&#xff0c;这当然是题外话&#xff0c;这阵子总结了自己学习的一些技能&#xff0c;就写一个对闲鱼的数据抓取来练练手。 预计达到的目…

网络爬虫淘宝api,获得淘宝app商品详情原数据

item_get_app-获得淘宝app商品详情原数据 注册测试 请求参数 请求参数&#xff1a;num_iid520813250866 参数说明&#xff1a;num_iid:淘宝商品ID 名称类型必须描述keyString是调用key&#xff08;必须以GET方式拼接在URL中&#xff09;secretString是调用密钥api_nameStr…

闲鱼搜索相关性——体验与效率平衡的背后

背景 闲鱼搜索是闲鱼APP最大的成交场景入口&#xff0c; 成交归因中搜索占一半以上&#xff0c;所以提高成交效率是工程和算法迭代优化的主要目标&#xff0c;然而只以效率为最终的衡量标准不但会影响搜索的质量阻碍成交&#xff0c;还会恶化整个平台的长期生态建设无法成长&am…

闲鱼唤端的背后

背景 众所周知&#xff0c;想要DAU稳步上升&#xff0c;端外引流是一个必不可少的手段&#xff0c;常见的引流方式有&#xff1a;广告投放、分享回流、流量互换等&#xff0c;而他们也有着一个共同的技术问题&#xff0c;就是唤端&#xff0c;本文着重分享一下唤端的相关知识以…

闲鱼最新选品技巧,快速帮你找到爆款!

在星球里面&#xff0c;每天可以获得一些数据&#xff0c;主要是闲鱼热销品&#xff0c;稳定品类&#xff0c;还有一些三方的工具。 户外最近是个热品类&#xff0c;基本很多爆款都是从这里产生的&#xff0c;从前段时间分享的帐篷&#xff0c;板凳&#xff0c;烧烤架&#xff…

闲鱼商品理解数据分析平台——龙宫

引言 闲鱼是一个以C2C为主的平台&#xff0c;区别于B端的用户&#xff0c;C端卖家在发布商品时更倾向于图描述的轻发布模式&#xff0c;对于补充商品的结构化信息往往执行力和专业程度都不高&#xff0c;这为我们的商品理解带来了很大的困难。为了能够在发布侧获得更多的商品结…

闲鱼API接口,如何获取原生数据

闲鱼平台API&#xff0c;item_app 获得闲鱼原生数据 num_iid:闲鱼商品ID 点击获取key和secret* 当你有了账号时候点到测试页面&#xff0c;下面是我测试的结果 返回参数 Result Object: --------------------------------------- {"item": {"all_result&q…

闲鱼榜单数据

昨天有个客户给我看了这个页面&#xff0c;感觉挺有意思的&#xff1a;闲鱼榜单。 系统集成了各个行业&#xff0c;还推荐了用户可能感兴趣的行业的关键词&#xff0c;然后将行业内的卖家做一个排行。 比如潮玩行业的排名就是这样的&#xff1a; 然后就临时做了个接口&#xff…

闲鱼消息发展回顾

引言 闲鱼消息系统经过几代开发的建设&#xff0c;目前稳定的支撑亿级消息体量。在消息系统建设过程中&#xff0c;我们经历了从简单到复杂&#xff0c;从困扰到破局&#xff0c;每一次的技术改变都是为了更好的解决当下业务面临的问题。“忆昔午桥桥上饮&#xff0c;坐中多是豪…

电商搜索里都有啥?详解闲鱼搜索系统(长文)

搜索是电商平台的核心流量入口&#xff0c;承载着平台主要的成交引导、意图收敛、活动投放。一个稳定、高效、可扩展的搜索系统是电商平台得以生存发展的基石。本文探讨如何构建完善的商品搜索系统&#xff0c; 并根据闲鱼二手交易的差异化特性介绍闲鱼搜索系统的时效性优化。 …

闲鱼关键词,实现闲鱼APP的特定关键字商品检索

最近碰上个需求 需要根据关键词检索出所有商品&#xff0c;可以指定价格范围&#xff0c;地点&#xff0c;和最新排序&#xff0c;去发现有某位大佬的一个项目刚好符合这个需求。放到这里分享一下给大家。因为系统不便公开需要的可以找我 任务设置页面 可以设置关键词&#xf…

闲鱼商品选投实时性优化

马赫是闲鱼的选品和投放系统&#xff0c;闲鱼业务中多数商品都是孤品即单库存商品&#xff0c;所以商品的实时变更需要即刻反馈到选品和投放链路中&#xff0c;为了满足业务诉求马赫设计之初就把实时性作为最重要的技术目标&#xff0c;随着系统的运行数据的膨胀实时性也遇到了…

闲鱼已售商品信息查询系统。手搓市场定价/行情查询利器

前段时间自己手搓出来一个闲鱼已售商品查询接口&#xff0c;最近有时间&#xff0c;就把接口搞成了软件。 软件作用&#xff1a; 可以方便地查询闲鱼已经成交的商品信息&#xff0c;包括成交价格、成交时间、挂单后多少天成交&#xff08;成交效率&#xff09;、以及商品信息&a…

产品优化策略,有效提升产品自身竞争力,我赌你一定没用过

新媒体时代自移动互联网诞生之日便处于不断变化的事态之中&#xff0c;为了迎合时代发展要求&#xff0c;大数据、云计算等移动互联网技术获得了迅猛发展&#xff0c;智能手机也已经成为人们生活、工作中不可或缺的元素。在智能手机中&#xff0c;各种类型的APP占据了智能手机很…

2022届计算机毕业论文(设计)学生选题参考合集推荐收藏

大四的同学马上要开始毕业设计啦&#xff0c;大家做好准备了没&#xff01; 给大家详细整理了计算机毕设最新选题&#xff0c;对选题有任何疑问&#xff0c;都可以问我哟~ 1基于JavaEE的问卷调查系统的设计与实现2基于SSM的山西工商学院校园跑腿代取系统的设计与实现3基于Web的…

计算机毕业论文选题推荐|软件工程|信息管理|数据分析|系列一

文章目录 导文题目导文 计算机毕业论文选题推荐|软件工程|信息管理 (***语言)==使用其他任何编程语言 例如:基于(***语言)门窗账务管理系统的设计与实现 得到:基于JAVA门窗账务管理系统的设计与实现 基于vue门窗账务管理系统的设计与实现 等等 题目 基于requests多线程…

湖北专升本数据结构

绪论 1.线性结构:是一一对应的关系。 2.集合结构:相当于一个班级&#xff0c;一个圈里面有很多。 3.“树”的数据结构:一对多的关系。 4.“图”的数据结构:多对多的关系。 名词解释 数据:是客观事实的符号表示&#xff0c;是所有能输入到计算机的符号的名称。 数据元素:…

英语四六级过了专升本可以加分吗?天津专升本英语四级加分取消

2021-2022年天津专升本考试中&#xff0c;全国大学英语四六级过了&#xff0c;那么天津专升本考试可以加分吗&#xff1f;天津专升本英语四级加分是不是与2020年取消了&#xff1f; 全国大学英语四、六级考试成绩的话题&#xff0c;又双叒叕登上了微博热搜 每到查分时&#xff…