刷某音手滑点了太多“喜欢”,如何取消点赞【批量】

1. 说明

本方法仅用于技术交流
本方法不一定有效,但是可以取消大多数点赞
本方法在chrome浏览器内核下测试
本方法测试时间为2022年12月15日,某音代码更新后不一定再生效

2. 具体使用方法如下:

  1. 打开某音网页版

  2. 登录后点击个人头像

  3. 点击“喜欢”
    在这里插入图片描述

  4. 点开第一个视频

  5. 在键盘上按下F12按键,或者手动打开开发者工具;
    6. 找到控制台界面,在控制台面板中粘贴JQuery源码,按下回车键

  6. 在控制台面板中粘贴如下代码,按下回车键

  7. 剩下的工作就是等待

var scriptJquery = document.createElement('script');
scriptJquery.src = 'https://code.jquery.com/jquery-3.6.0.min.js';
scriptJquery.type = 'text/javascript';
scriptJquery.async= 'true';
document.getElementsByTagName('head')[0].appendChild(scriptJquery);

var unStarCnt = 0;
function unStar(){
	//HNBvVrcV是爱心按钮的class名称
	var theStar = jQuery('.HNBvVrcV:not([hidden])');
	//.xgplayer-playswitch-tab .xgplayer-playswitch-next是“下一个”按钮的class名称
	var theNext = jQuery(".xgplayer-playswitch-tab .xgplayer-playswitch-next");
	console.log("取消喜欢");
	setTimeout(function(){theStar .click();},2000);
	console.log("点击下一个");
	setTimeout(function(){theNext.click();},4000);
	console.log("再来一次");
	setTimeout(function(){unStar();},6000);
	unStarCnt=unStarCnt+1;
	console.log("第"+unStarCnt+"次取消了赞");
}
unStar();

3. 特别说明

这里引入JQuery,用JQuery而不使用$符号,避免和某音源码中的定义冲突。
这里的演示操作主要考虑到某音先加载完视频然后再加载赞,所以延迟处理为了获取到已赞的状态后去取消点赞。

好的,下面是一个backtrader股票回测示例,考虑手续费、滑点、资金管理: ```python import backtrader as bt class MyStrategy(bt.Strategy): params = ( ('sma_period', 15), ('atr_period', 14), ('atr_multiplier', 2), ('commission', 0.001), ('slippage', 0.001), ('initial_capital', 100000), ) def __init__(self): self.sma = bt.indicators.SimpleMovingAverage( self.data.close, period=self.params.sma_period) self.atr = bt.indicators.ATR( self.data.high, self.data.low, self.data.close, period=self.params.atr_period) self.position_size = None def next(self): if self.position: if self.data.close[0] < self.sma[0]: self.close() else: if self.data.close[0] > self.sma[0] + \ self.params.atr_multiplier * self.atr[0]: self.position_size = self.params.initial_capital * \ self.params.risk / self.atr[0] self.buy(size=self.position_size) def notify_order(self, order): if order.status in [order.Submitted, order.Accepted]: return if order.status in [order.Completed]: if order.isbuy(): self.log( 'BUY EXECUTED, Size: %.2f, Price: %.2f, Cost: %.2f, Comm: %.2f' % (order.executed.size, order.executed.price, order.executed.value, order.executed.comm)) self.position_size = order.executed.size else: self.log('SELL EXECUTED, Price: %.2f, Cost: %.2f, Comm: %.2f' % (order.executed.price, order.executed.value, order.executed.comm)) self.position_size = None elif order.status in [order.Canceled, order.Margin, order.Rejected]: self.log('Order Canceled/Margin/Rejected') def notify_trade(self, trade): self.log('Trade Profit/Loss: %.2f' % trade.pnl) if __name__ == '__main__': cerebro = bt.Cerebro() cerebro.addstrategy(MyStrategy, risk=0.01) data = bt.feeds.YahooFinanceData( dataname='AAPL', fromdate=datetime.datetime(2010, 1, 1), todate=datetime.datetime(2020, 12, 31)) cerebro.adddata(data) cerebro.broker.setcash(100000) cerebro.broker.setcommission(commission=self.params.commission, margin=0, mult=1) cerebro.broker.set_slippage_fixed( size=self.params.slippage, price=None) cerebro.run() ``` 这个策略使用了SMA和ATR指标来进行交易决策。如果当前没有持仓且价格上穿SMA加上ATR乘以一个倍数,则进行买入;如果当前持仓且价格下穿SMA,则进行卖出。其中,ATR用于计算每次交易的头寸大小。 在`notify_order`方法中,我们输出了每次交易的成本和手续费,用于计算总体的交易成本。在`notify_trade`方法中,我们输出了每次交易的盈亏情况。 在主程序中,我们使用了YahooFinanceData作为数据源,设置了回测时间和初始资金,并设置了手续费、滑点等交易参数。回测时,我们将risk参数设置为0.01,表示每次交易风险不超过总资金的1%。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

丷丩

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

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

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

打赏作者

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

抵扣说明:

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

余额充值