#1 - 2017-10-28 01:17
windrises (一个纠结的面瘫伪宅)
起因是因为有时候我点开一个人的资料,看到我们的同步率比较高,但是我又好奇到底有哪些共同爱好。于是我就动手写了一个小程序然后放在了我的服务器上,贴出来和大家分享
访问地址                        源代码
@君寻 在#20-3给了一个油猴脚本,使用更方便。

使用说明:
会把两个用户标为“已看”的动画条目中相同的条目的打分和评价等拿出来做对比
1、在右上角的输入框里输入两个用户的id(不是昵称),以空格隔开,回车进行比对
2、只输入一个用户的id,则程序会再随机选取一个用户
3、什么都不输入,则随机选两个用户
这里有一张效果截图,是我和我的一个好友的爱好对比


后台是用Django写的,前端就是bgm的我都没怎么改.. 第一次接触这东西,感觉上手还是挺快的  服务器是某九块九一个月的学生主机   实际访问速度不怎么样,没有bangumi的api,内容都靠扒网页,运行时间基本都花在了获取网页上。根据双方标记条目的多少,加载出结果可能会花费几秒到几分钟的时间...  需要有耐心
我每晚一般会有3、4个小时的空闲时间,最近也没有什么补番的动力,就想写写东西,既能打发时间又能学点东西    写这个东西边学边写花了我半个星期,最头疼的就是配环境...
如果能有人用这个小东西就太好了,如果遇到bug或者有别的需求和点子都欢迎提出来  接下来我也会看情况再做一些小功能
练手的东西,对这技术也不了解,欢迎指教(bgm24)
---------------------
又加了书籍,游戏,音乐,三次元的对比
随机搜索经常遇到僵尸的问题正在解决
---------------------
增加了共同好评,共同差评,存在分歧三个分类
---------------------
增加了多线程的优化。简单测试了一下,即使用户的“已看”列表高达50页,也能保证在20s内返回结果。
另外广告一下我做的另一个小工具:多标签搜索功能来啦
如果帮到了你,厚脸皮求在Github给个star(bgm38)
#2 - 2017-10-28 01:23
(ACG / WEB / UI 千里之行始于足下。)
感觉这样的小工具用 django 有点太重了啦
赞一个, 考不考虑把「在看」的支持也加上呢~
#2-1 - 2017-10-28 01:24
Dimpurr
另一个小建议:随机出来的用户经常是空的三无用户,不如设计成后台反复随机到有2条以上相同条目的用户为止……?
#2-2 - 2017-10-28 01:25
windrises
我对web开发的框架都没什么了解 原本打算写blog的 听说django写blog比较方便所以就选的它
谢谢~我会考虑的
#2-3 - 2017-10-28 01:27
windrises
Dimpurr 说: 另一个小建议:随机出来的用户经常是空的三无用户,不如设计成后台反复随机到有2条以上相同条目的用户为止……?
确实是这样的,我是觉得再随机一下的话这网页估计几分钟都出不来结果 bgm上僵尸用户太多了bgm38
#2-4 - 2017-10-28 13:11
桜小路 アトレ
windrises 说: 确实是这样的,我是觉得再随机一下的话这网页估计几分钟都出不来结果 bgm上僵尸用户太多了bgm38
减少僵尸用户被选中的概率的话...可以考虑把添加条目量低于某个固定数值的排除?
好一点的做法可能要以评分条目数为参考,但是感觉要重新爬数据的样子。
#2-5 - 2017-10-28 13:37
windrises
桜小路 アトレ 说: 减少僵尸用户被选中的概率的话...可以考虑把添加条目量低于某个固定数值的排除?
好一点的做法可能要以评分条目数为参考,但是感觉要重新爬数据的样子。
好建议
#2-6 - 2017-10-29 16:44
Anozz
windrises 说: 我对web开发的框架都没什么了解 原本打算写blog的 听说django写blog比较方便所以就选的它
谢谢~我会考虑的
django写blog真的方便么...难不成你是指从头开发一个blog(bgm38)
#3 - 2017-10-28 01:40
(V1046-R MAHORO)
服务器崩了。

nginx error!
The page you are looking for is temporarily unavailable. Please try again later.
Website Administrator
Something has triggered an error on your website. This is the default error page for nginx that is distributed with Fedora. It is located /usr/share/nginx/html/50x.html

You should customize this error page for your own site or edit the error_page directive in the nginx configuration file /etc/nginx/nginx.conf.

[ Powered by nginx ]  [ Powered by Fedora ]
#3-1 - 2017-10-28 01:41
windrises
那就很尴尬了,等几秒再刷新一下吧bgm38
#3-2 - 2017-10-28 01:42
烈之斩
windrises 说: 那就很尴尬了,等几秒再刷新一下吧bgm38
试了几次都不行,你试试fireattack ichigoh
#3-3 - 2017-10-28 01:55
windrises
烈之斩 说: 试了几次都不行,你试试fireattack ichigoh
应该是ichigoh他的已看条目太多了,我试了几次发现都是后台还在正常运行,但是浏览器已经等不及提前中断了...
#3-4 - 2017-10-28 02:40
windrises
烈之斩 说: 试了几次都不行,你试试fireattack ichigoh
谢谢指出,已经修复好了,确实是超时的原因
#3-5 - 2017-10-28 03:40
烈之斩
windrises 说: 谢谢指出,已经修复好了,确实是超时的原因
Thanks
#4 - 2017-10-28 02:16
(ハロ/ハワユ)
roll到这位(bgm38)
这个应该是要ban的吧 @Sai
#4-1 - 2017-10-28 02:20
windrises
还有这种操作..
#4-2 - 2017-10-28 08:42
NevaR
666
#4-3 - 2017-10-28 09:02
大鲨鱼
可不得了
#4-4 - 2017-10-28 10:03
muon
惊了 瑟瑟发抖.jpg (bgm38)
#4-5 - 2017-10-28 10:46
Hentyclopedia
这咄咄逼人的ID吓死人
#4-6 - 2017-10-28 12:57
九重凛
厉害了,广告打到这里来(bgm38)
#5 - 2017-10-28 04:06
(noblesse oblige)
好东西,收藏了
#5-1 - 2017-10-28 13:38
windrises
好开心
#6 - 2017-10-28 08:04
(在里物中追寻剧情,在表物中构思本子展开的家伙 ...)
大佬什么时候方便做个复数tag筛选插件呗(bgm38)
#6-1 - 2017-10-28 13:38
windrises
emmm确实是个痛点,我去琢磨琢磨
#6-2 - 2017-10-28 21:45
工口卿
windrises 说: emmm确实是个痛点,我去琢磨琢磨
期待ing.jpg
#7 - 2017-10-28 09:56
(希望不论什么时候,都不要后悔我们的相遇 ... ... ... . ...)
两边的评论框能对齐一下就好了,强迫症(bgm38)
#7-1 - 2017-10-28 13:39
windrises
确实是...
强迫症药不能停
#8 - 2017-10-28 10:57
(温柔可爱的小男孩最棒了)
这种功能更适合浏览器插件,或者把数据存下来并加一个异步的刷新好一些,如果不满足于一个小程序的话。
还有国内服务器80端口开久了似乎会收到备案通知(bgm38)
#8-1 - 2017-10-28 13:41
windrises
确实做成插件体验效果是最棒的,不过js那堆东西看着头大,而且考虑到有些人不方便用插件...
听说过异步,我再学习学习
备案什么的正在递材料,好烦
#9 - 2017-10-28 12:07
(签名到底是什么呢……我很好奇!)
偷看了一下和lz的共同爱好(bgm24)
#9-1 - 2017-10-28 13:42
windrises
L真的是对什么都很好奇呢
和L好多共同爱好真是太棒了
#10 - 2017-10-28 12:30
(谢谢茄子)
首先想到的是 对比一下楼主和小寒(bgm38)
#10-1 - 2017-10-28 13:43
windrises
楼主从踏入bgm开始就一直活在小寒大大的阴影下(bgm98)
#11 - 2017-10-28 19:07
(抵触杀必死作,也不喜欢“废萌”这词的含义被无限扩大 . ...)
可不可以求将游戏之类也统计下,而不是只统计一个动画?
#11-1 - 2017-10-28 19:38
windrises
可以,一会加上去 这个改起来还是挺方便的
#11-2 - 2017-10-28 20:08
windrises
改好了(bgm24)
#11-3 - 2017-10-28 20:34
心的神话
windrises 说: 改好了
多谢!
#12 - 2017-10-28 21:02
感觉爬的有点慢啊,试试scrapy呢(bgm39)
#12-1 - 2017-10-28 21:16
windrises
我也不太懂,这个scrapy可以只下载部分html而不是全部下载吗
我是用的urllib2先把html下好,然后用的bs4分析的结构...
#12-2 - 2017-10-28 22:15
此间的少年x
windrises 说: 我也不太懂,这个scrapy可以只下载部分html而不是全部下载吗
我是用的urllib2先把html下好,然后用的bs4分析的结构...
scrapy就是个专门爬网站的库,貌似自带多线程,我也就用过几次,不过感觉爬起来挺快的(bgm39)
#12-3 - 2017-10-28 22:18
windrises
此间的少年x 说: scrapy就是个专门爬网站的库,貌似自带多线程,我也就用过几次,不过感觉爬起来挺快的
我mark一下
#12-4 - 2017-10-29 15:29
发光的球
windrises 说: 我也不太懂,这个scrapy可以只下载部分html而不是全部下载吗
我是用的urllib2先把html下好,然后用的bs4分析的结构...
python别用urllib用包了一下的requests吧,会开心很多(bgm38)
#13 - 2017-10-28 21:59
获取每个条目信息的时候再开个线程会快很多
#13-1 - 2017-10-28 22:19
windrises
记笔记
#14 - 2017-10-28 22:05
和楼主口味挺类似的
#14-1 - 2017-10-28 22:18
#15 - 2017-10-28 22:06
可以考虑按某一方评分顺序排序
能不能摆脱过段时间就宕机的命运(bgm38)
#15-1 - 2017-10-28 22:13
windrises
啊,我倒是没怎么遇到过 也有可能是我修改了代码后重启了后台的原因
顺序的话,应该是以第一个用户的收藏时间来排的序
#15-2 - 2017-10-29 00:55
Aoi
windrises 说: 啊,我倒是没怎么遇到过 也有可能是我修改了代码后重启了后台的原因
顺序的话,应该是以第一个用户的收藏时间来排的序
啊不是,是说比如一个月后就再也打不开了(bgm39)
#15-3 - 2017-10-29 11:47
windrises
Aoi 说: 啊不是,是说比如一个月后就再也打不开了
只要还有人用我就不会关闭的,而且我接下来还会继续做些关于bgm的小东西(bgm24)
#15-4 - 2017-10-29 11:55
君寻
我也觉得这种取决于开发者的服务有种不安心的感觉(bgm38)
#16 - 2017-10-29 12:07
(希望不论什么时候,都不要后悔我们的相遇 ... ... ... . ...)
可以按评分做个分类,如
(1)共同喜好:if 双方评分>=7
(2)共同厌恶:if 双方评分<7
(3)存在分歧:else
#16-1 - 2017-10-29 14:40
windrises
加上去了~
(如果觉得字体不太对,按住shift再刷新可以强制重新加载一下css
#16-2 - 2017-10-29 15:46
君寻
windrises(windrises) 说: 加上去了~
(如果觉得字体不太对,按住shift再刷新可以强制重新加载一下css
可以给三个加上定位链接,列在上面,可以加个菜单栏,随着后面加更多功能,菜单也会需要的
关于排序,我认为“共同好评”可以按评分之和降序,“共同差评”按评分之和升序,“存在分歧”按|双方评分之差|降序
#16-3 - 2017-10-29 16:39
君寻
windrises(windrises) 说: 加上去了~
(如果觉得字体不太对,按住shift再刷新可以强制重新加载一下css
忘了考虑未评分的情况了,未评分的不能算入“存在分歧”,应该算“其他”
#16-4 - 2017-10-29 17:07
君寻
这个分类条件还得改改
(1)共同喜好:双方评分>=7  and  |双方评分之差|<2
考虑一个打7分,另一个打9分以上,喜好程度就不一样了,应该算存在分歧
(2)共同厌恶:双方评分<7  and  |双方评分之差|<4
考虑一个打6分,另一个打2分以下,厌恶程度就不一样了,应该算存在分歧
(3)没有评分:有一方评分为空
评分为空不能看做评分为0
(4)存在分歧:其他
情况太多,直接else处理吧
#16-5 - 2017-10-29 19:19
小T
还是定的有点宽......
#17 - 2017-10-29 15:48
(希望不论什么时候,都不要后悔我们的相遇 ... ... ... . ...)
“动画、书籍、游戏”的切换,每次都需要重新输入ID检索,我觉得可以做成菜单栏的样式,点击即可重新检索此分类
#18 - 2017-10-29 15:50
(希望不论什么时候,都不要后悔我们的相遇 ... ... ... . ...)
对已经检索过的内容,可以存入cookies,这样就不用每次都重新检索了
#18-1 - 2017-10-29 16:16
此间的少年x
存入cookies是什么操作,我猜你的意思是存入数据库?
#18-2 - 2017-10-29 21:42
windrises
我先记一下,有时间改改
#19 - 2017-10-29 17:53
(温柔可爱的小男孩最棒了)
要比较优雅地实现楼上的需求,LZ大概需要先把相关数据库结构照着bgm复制一份,把model建了
(而且学django的话,建model不是第一步吗,还是LZ只想练习一下python)
还有好想说加需求要加钱(bgm38)
#19-1 - 2017-10-29 21:44
windrises
刚入门,现在的功能也还没涉及到数据库
接下来想做做有人提到的复数tag,这个就得用到了
#20 - 2017-12-5 12:14
(希望不论什么时候,都不要后悔我们的相遇 ... ... ... . ...)
能不能在/contrast/ 后面加入ID,方便定位
#20-1 - 2017-12-7 01:39
windrises
嗯,我最近有点事情要忙(bgm40),等这个周末或下星期我加上去
没想到还有人在用(bgm38),感动哭。现在回头看看这功能烂的我自己都看不下去了,等下次我再想办法用多线程优化下抓取网页的速度
#20-2 - 2017-12-10 20:33
windrises
更新了,自顶一下
#20-3 - 2017-12-10 21:20
君寻
windrises(windrises) 说: 更新了,自顶一下
好的,我的脚本也更新了,用户页直接点击就可以进入对比,不需要手输ID了
#20-4 - 2017-12-10 21:26
windrises
君寻 说: 好的,我的脚本也更新了,用户页直接点击就可以进入对比,不需要手输ID了
看到效果了,这个想法好棒,我之前还不知道可以这样用(bgm38)
#21 - 2017-12-7 08:50
Hi!我是bgm新人,目前对这个社区很感兴趣,也对开发bgm相关的东西很感兴趣,我有个不太成熟的建议楼主看可行否?

如果楼主要做用户相似度,我觉得可以做embedding。
整个bgm就是个番剧与人的graph,我们可以做graph embedding,比如用LINE什么的
人-番edge上的权重就是评分,抛弃的或者其他的我们就手动定义个分,做出graph embedding之后我们可以算人与人之间的相似度的。
番-番之间的edge我们可以考虑用番剧的标签处理一下后直接算相似度,简单的例子就是把每个番剧的每个标签想像成向量的一个维度,整个标签组就是个向量,然后算cos相似度。
人-人之间的edge可以考虑关注啊,参与的小组啊之类的。

其实我从刚加入bgm就有类似的想法了,只不过懒癌一直有事情也只停留在想法,没有上手,欢迎大家讨论
#21-1 - 2017-12-7 22:46
低端小乖
蒻蒟小小地问一句:你定义这些 edge weight,它们的量纲一致吗?
#21-2 - 2017-12-10 20:37
windrises
想法很好呀,不过看起来好复杂(bgm38)
要是有机会我可以尝试尝试