查看原文
其他

完整流程 | 闲鱼哪些东西好卖?我帮你分析出来了!

AirPython 2023-05-26

The following article is from 煎蛋搞钱 Author 煎蛋哥

家好,我是安果!
最近有小伙伴后台给我留言,说自己最近想在闲鱼上卖一点东西,但是不知道哪些商品更适合自己,哪些商品更容易出单,希望我能给他一点建议!
众所周知,闲鱼是国内最大的线上跳蚤市场,我们通过 App 注册后就可以在平台上进行商品买卖了

本篇文章将介绍从闲鱼获取合适商品的完整思路,供大家参考

1. 分析

对于有货源优势的个人商家,直接在闲鱼 App 中上架商品,然后选择一种方式( 比如,通过 某鱼币或鱼塘 )去推广即可

而大部分的普通人并不存在货源优势,这时候我们需要通过下面 3 个步骤去完成选品

  • 对 App 进行日常训练

  • 通过数据分析获取热门商品

  • 结合自身优势进行消化理解,完成商品上架

2. 日常训练

App 日常训练作为最重要的一步,帮助我们筛选出有用数据,过滤掉大部分的无效信息

2-1  定制我的频道

入口:App 首页 - 闲鱼( 底部 Tab ) - Tab 管理页面( 频道切换 Tab )

进入到我的频道页面,就可以根据自己的优势( 卖东西分类 )选择首页展示的频道

2-2  定向搜索

入口:App 首页 - 闲鱼( 底部 Tab ) - 搜索输入框(输入关键字)- 点击搜索按钮

在 App 搜索输入框内输入关键字,点击搜索,可以进行一次定向查询

每一次的定向查询都会影响都会影响首页「 猜你喜欢 」Tab 页面展示的内容

2-3  日常训练

在首页商品 Tab 页面或定向关键字搜索结果列表中,对于没有意义的商品可以长按 Item,选择「 屏蔽同类商品 」区域

这样,后面就不会展示该商品同类的商品出来了

3. 数据分析

通过上面的操作,我们可以使用自动化爬取数据进行一波分析了

这里以「 猜你喜欢 」Tab 页面为目标页面,使用 AutoJS 爬取数据为例进行讲解

3-1  打开 App,清除剪切板,首页完全加载

function main() {
    log("启动闲鱼,开始爬虫。。。")
    //启动闲鱼之前,清除剪切板
    setClip("");
    app.launchApp("闲鱼")
    //等待到达首页
    text("会玩").findOne();
    log("【闲鱼】首页加载成功")
    ...
}

3-2  获取商品信息

获取商品标题、热度( 即:想要人数 )、价格

    ...
    //商品列表
    var goods = id("com.*.*:id/cardview_61801").find()

    for (var i = 0; i < goods.length; i++) {
        log("遍历商品")
        //每一条商品
        var good = goods[i];
        //标题
        var title_element = good.findOne(id("com.*.*:id/content_title"))
        //热度
        var hot_element = good.findOne(id("com.*.*:id/hot_point"))

        if (title_element && hot_element) {

            //标题内容
            var title = title_element.text()
            //热度(正则匹配)
            var hot = Number(hot_element.text().replace(/人想要/''))
             //价格
            var price = good.findOne(id("com.*.*:id/price")).text().replace(/¥/'')+"元"
    ...

3-3  热度及黑名单关键字过滤,进入商品详情

通过自定义「 热度 」的下线,商品热度大于这个值的才为有效数据

另外,通过「 黑名单 」关键字列表,将标题栏包含这些信息的商品过滤掉

PS:「 商品价格 」同样可以设置一个上限值,超过这个值的商品不进行采集

//热度下线
var hot_min =1000

//价格最高
var high_price = 100

//屏蔽关键字
var black_words_list = ["洗衣机","餐桌","烤箱","书桌"...]

...
 //热度下线
            if (hot < hot_min) {
                log("商品热度为:" + hot + ",太低不采集!")
                continue;
            }else if(is_black(title)){
                log("商品标题为:",title,",踩到黑名单,不采集!");
                continue;
            }else if(is_been_catched(title)){
                log("商品标题为:",title,",之前被采集过,这里不重复采集!");
            }

            log("标题内容为:" + title + ",热度:" + hot+",价格:"+price)

            good.click()
            log("点击进入到商品详情。。。")
            sleep_random()
...

对满足条件的商品,模拟点击跳转到商品详情页面

3-4  过滤广告

商品列表中会包含一些商品广告,我们通过正常商品、广告商品的页面元素区别,过滤掉广告商品

...
 if (text("商品详情页").findOnce()) {
                log("这是一条广告。。。")
                back()
                continue;
            }
...

3-5  获取口令码

在商品详情页面,点击右上角的分享图标,在分享对话框中,点击「 T 口令 」按钮,这样商品的口令码就复制到剪切板了

//复制口令
var copy_code = true;

//点击某个元素,知道一个元素出现
function click_sure(target_element,next_selector){
    //点击元素
    while(true){
        //点击元素
        click(target_element.centerX(), target_element.centerY());
        //如果next_selector为null,或者找到下一页面的元素
        if(!next_selector || (next_selector&&next_selector.findOnce())){
            break
        }
        sleep(1000)
    }
}
...
 var share_element = desc("分享").findOne(6000).bounds();
 click_sure(share_element,desc("...口令"))

 log("点击淘口令,拷贝到剪切板")

 //等待分享对话框出现
  if(copy_code){
          desc("...口令").findOne(6000).parent().click()
  }

  sleep_random()
...

3-6  去重及循环滑动页面

由于滑动页面可能会出现重复的商品,这里根据商品的标题对采集的数据集进行去重

//爬取数据结果集
var results = []

//回退到主界面
function back_main_page() {
    //判断是否在主界面
    while (true) {
        if (currentActivity() == 'com.*.*.home.activity.MainActivity') {
            break;
        } else {
            back();
        }
        sleep(1000)
    }
}

...
  let obj = {}
  results = results.reduce(function (item, next) {
        obj[next.title] ? '' : obj[next.title] = true && item.push(next)
        return item
  }, [])

  sleep_random()
  //回退两次到桌面
  back_main_page()
...

3-7  发送微信群聊

根据配置信息采集完数据后,最后将采集结果发送到对应的微信群中

function send_wx_msg(group_name,results){
    //如果休眠,唤醒设备
    log("爬取完成!准备分享到微信群。。。")
    device.wakeUpIfNeeded()
    app.launch("com.tencent.mm");
    text("微信").waitFor()

    //点击进入到聊天界面
    var chat_element_bounds = text(group_name).findOne().bounds();
    click_sure(chat_element_bounds,id("auj"))

    sleep(3000)
    results.forEach((item) => {
        //发信息
        log("准备发送微信出去。。。。")
        //数据转换
        id("auj").className("EditText").findOne().setText(JSON.stringify(item))
        sleep(3000)
        //发送
        text("发送").click()

    })
    log("发送成功!")
    //返回
    back();
    home();
}

# 4. 总结一下

通过上面的一系列操作,就可以从训练后的商品列表中采集到合适的商品进行上架了

需要注意的是,由于 App 分享频次的功能限制,配置 T 口令复制次数最好限制在 10 个商品以下

我已将文中所有源码上传到下方公众号后台,关注「 煎蛋搞钱 」后回复关键字「 xyxp 」即可以获取

如果你觉得文章还不错,请大家 点赞、分享、留言 下,因为这将是我持续输出更多优质文章的最强动力!


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存