油猴+JS代码创建DEAP网页按钮

DEAP

DEAP (Data Exploration and Analysis Portal)是ABCD提供的数据探索和分析网站,允许用户对ABCD数据进行下载和统计分析(需要NDA凭证登录)。在这里可以看到最新release的行为和ROI水平的指标。让人印象深刻的地方是使用DEAP可以快速(0.2s以内)从上万个文件中检索出所需要的数据。

比如 MID任务中Reward anticipation large vs. neural Contrast的beta值,将需要的数据加入购物车即可下载。

689b66e6b37914711ad6377c357fbb02.png

但是目前DEAP存在以下两个影响用户体验的地方:

1)无法将数据一次性将所有检索出来的内容加入购物车,必须一个一个地点。

2)清空购物车时,如果不在清除缓存的话,即使在购物车加入新的数据,仍然会下载之前添加的数据。但是这个功能隐藏在一个很遥远的页面中。

c83b9558f5124596bcfa6ecb890ac109.png

油猴

相信很多人听说过油猴(Tampermonkey),可以理解为一个用户脚本管理器。它主要依靠各大社区编写的扩展脚本(JavaScript代码)运行在浏览器上,来改变被访问网页的功能,提升网页浏览体验。所以可以考虑在DEAP的页面上加入自制的JS代码,实现:

  1. 添加按钮

  2. 一键添加购物车

  3. 清空购物车

1.添加HTML 按钮

e385345a7b13171559616fd11b5a21cf.png

参考模板

https://stackoverflow.com/questions/6480082/add-a-javascript-button-using-greasemonkey-or-tampermonkey

2.一键添加购物车

77db9e19236293ddf73d8a6b0ddbeba1.png

原理就是根据ClassName找到所有Add to Chart的按钮并点击。这里可以通过查看网页元素的方法查看按钮的属性。

df4317b1cc9c6ff858b866991d7da6fa.png


3.清空购物车

原理就是清空缓存和刷新页面

af2285c0ab9af2a2c13e24de961739b2.png

三部分内容搞明白之后就是将按钮所执行的功能替换成所需功能,并调整按钮的位置和外观即可。即使不用DEAP,第一部分的框架完全可以运用到其他网站实现某些功能。

5017ad8eee1127b97ab78816518e19ca.png

在油猴JS代码前写 debugger; 可以进入代码调试模式。还有一个调试代码的地方就是网页查看元素页面的console,在这里可以看到报错的信息,也可以直接在这里运行JS的代码。

2a00b0455d7f8b4a62adbbe015b67751.png

初识油猴还是在几年前,那个时候需要尽快预约一个提交签证申请的时间,写了一个简单的JS脚本不停刷新可预约时间,结果账号直接被封了72个小时780b12eed394ab13d73f8c4c20467efe.png,还好解封后很快就预约到了最近的时间57ebef39f5703d3af97361e616fd27bb.png

c4afe31bfdf362814320db8faee5d294.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
NSGA-II(Non-dominated Sorting Genetic Algorithm II)是一个经典的多目标优化算法。下面是使用Python和DEAP库实现NSGA-II的示例代码: ```python import random from deap import algorithms, base, creator, tools # 定义问题 creator.create("FitnessMulti", base.Fitness, weights=(-1.0, -1.0)) creator.create("Individual", list, fitness=creator.FitnessMulti) # 初始化种群 toolbox = base.Toolbox() toolbox.register("attr_float", random.uniform, -5, 5) toolbox.register("individual", tools.initRepeat, creator.Individual, toolbox.attr_float, n=2) toolbox.register("population", tools.initRepeat, list, toolbox.individual) population = toolbox.population(n=50) # 定义评估函数 def evaluate(individual): return individual[0]**2 + individual[1]**2, (individual[0]-1)**2 + individual[1]**2 toolbox.register("evaluate", evaluate) # 定义遗传算子 toolbox.register("mate", tools.cxSimulatedBinaryBounded, eta=20, low=-5, up=5) toolbox.register("mutate", tools.mutPolynomialBounded, eta=20, low=-5, up=5, indpb=0.1) toolbox.register("select", tools.selNSGA2) # 进行优化 NGEN = 100 for gen in range(NGEN): offspring = algorithms.varAnd(population, toolbox, cxpb=0.7, mutpb=0.3) fits = toolbox.map(toolbox.evaluate, offspring) for fit, ind in zip(fits, offspring): ind.fitness.values = fit population = toolbox.select(offspring, k=len(population)) # 输出 Pareto 前沿 fronts = tools.sortNondominated(population, k=len(population)) for i, front in enumerate(fronts): print("Frontier", i) for ind in front: print(ind.fitness.values) ``` 在这个示例代码中,我们以一个简单的二元目标函数为例进行优化。首先,我们使用`creator`定义了一个多目标适应度函数和一个个体类。接着,我们使用`toolbox`注册了一个浮点数属性和一个个体初始化函数,以及一个`population`初始化函数。然后,我们定义了一个评估函数来计算每个个体的两个目标函数的值。最后,我们使用`toolbox`注册了遗传算子和选择算子,并且使用`algorithms`中的`varAnd`和`selNSGA2`函数来执行NSGA-II算法进行多目标优化。 这只是一个简单的示例代码,你可以根据自己的需求进行修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值