都怪我多嘴,看了@锦城随笔 的 手把手教你使用影刀RPA批量获取小红书低粉爆款的商品!全自动解放双手!
说自己用影刀重写一次,本来当晚就写好了,不过觉得发了没用,也不会加精,所以不发了
这么久,忽然收到留言,有人还惦记着
好吧,说到做到,运行效果看这里
这段代码原理来源于伟豪的关于选品的一篇文章,小红书单店铺单月6000+利润选品保姆级教程 这个方法论
脚本是严格按照这个方法去执行,步骤:
1、打开APP,进入购物列表
2、每个商品都点击进去,采已售数,已经点过就不会再点击
3、已售数大于100,进入店铺,采集粉丝数
4、粉丝数少于200,进入笔记列表,翻看前10页笔记的点赞数
5、统计点赞数大于100的笔记数量(记得,锦城没做这一步)当这个数大于1时表示,这就是我们要找的低粉爆款商品了
6、最后把爆款记录在数据表格当中,列表头分别是 商品名、已售数、店铺名、粉丝数、过百点赞笔记数、链接
一开始不觉得能找到,条件这么苛刻,不过代码跑了一晚上,一觉醒来就能得到满满的一张表:
过程中,遇到最大的坑在于回到列表页,发现元素不见了,原因官方给出说明,知道原因,技术上就好解决了
这是核心代码
glv_target_sale_num = 100
glv_target_fan_num = 200
glv_target_zan_num = 100
def main(args):
session = phone.getCurrentSession()
scanSale(session)
def scanSale(session):
phone.openApp(session,"com.xingin.xhs")
databook_path = pc.makeDir("K:\\workspace\\xhs",datetime.now().strftime("%Y-%m-%d-%H-%M"))
xpath = '//android.widget.TextView[@text="首页"]'
phone.backToAppHome(session,xpath)
phone.click(session,xpath)
pc.clearData()
while True :
xpath = '//android.widget.TextView[@text="购物"]'
phone.click(session,xpath)
list_sale_recode = []
for i in range(10):
xpath = '//android.widget.TextView[contains(@text,"已买")]/../preceding-sibling::android.widget.FrameLayout/android.widget.TextView'
for index in range(phone.count(session,xpath)):
xpath = '//android.widget.TextView[contains(@text,"已买")]/../preceding-sibling::android.widget.FrameLayout/android.widget.TextView'
sale = phone.find_one(session,xpath,index)
title = sale.get_attribute('text')
if not title in list_sale_recode:
list_sale_recode.append(title)
record = []
record.append(title)
sale.click()
readSaleNum(session,record)#读取已售
phone.back(session)
phone.swipeUp(session)
pc.exportData(databook_path)
def readSaleNum(session,record):
xpath = '//android.view.ViewGroup[@index="4"]/android.widget.ImageView'
if phone.exist(session,xpath):
phone.click(session,xpath)
phone.swipeUp(session)
xpath = '//android.widget.TextView[contains(@text,"已售")]'
sale_num_str = phone.getAttribute(session,xpath,"text")
sale_num = sale_number(sale_num_str)
if sale_num and sale_num > glv_target_sale_num :
record.append(sale_num)
xpath = '//android.widget.TextView[@text="店铺"]'
phone.click(session,xpath)
readFanNum(session,record) #进入主页
def readFanNum(session,record):
xpath = '//android.widget.TextView[contains(@text,"粉丝")]/preceding-sibling::android.widget.TextView'
fan_num_str = phone.getAttribute(session,xpath,"text")
fan_num = fan_number(fan_num_str)
if fan_num and fan_num < glv_target_fan_num :
xpath = '//android.widget.TextView[contains(@text,"小红书号")]/../../preceding-sibling::android.widget.TextView'
name_str = phone.getAttribute(session,xpath,"text")
xpath = '//android.widget.TextView[@text="笔记"]'
phone.click(session,xpath)
xpath = '//androidx.recyclerview.widget.RecyclerView/android.widget.FrameLayout[@content-desc]'
zan_str_list = []
for i in range(10):
zan_list = phone.find_all(session,xpath)
for zan in zan_list:
zan_num_str = zan.get_attribute("content-desc")
if not zan_num_str in zan_str_list:
zan_str_list.append(zan_num_str)
phone.swipeUp(session)
count = 0
for zan_str in zan_str_list:
zan_num = zan_number(zan_str)
if zan_num > glv_target_zan_num:
count += 1
if count > 0 :
record.append(name_str)
record.append(fan_num)
record.append(count)
phone.back(session)
phone.swipeDown(session)
getLine(session,record)
else:
phone.back(session)
else:
phone.back(session)
我是专门把实干经验转成赚钱机器,希望有天能躺赚5W+的RIO桑,期待海航中遇到大家!
Comments on "没想到!这里还被催更,影刀RPA如何自动批量采集小红书低粉爆款商品" :