群晖Video Station豆瓣刮削器补丁—最新20200409(解决未知)
本帖最后由 20082010 于 2020-4-10 14:47 编辑这两天看到有人发了搜刮器补丁(2020新版),不过没说明是啥。其实不是GXNAS博客的,他也是转发的只是没说明。
特此说明一下
补丁文件早在去年8月就有了,原理是通过在线代理的方式进行的。目的就是为了防止之前搜刮器因为服务器挂了导致大家无法再使用。
现在大家基本都用上了。这个在线代理的方式每天只能10万次访问,这个是cloudflare限制的。(好像现在已近挂了。。)
说白了,大家可以去cloudflare上面自己建立一个应用,自己用自己的,就不用了怕被挂了。(这也是这个作者的初衷)
“未知”的问题是因为你用来访问douban的ip地址访问太频繁了,被douban认为是有风险的。所以拒绝你再访问了。
为了解决这个问题,可以尝试使用workers来代理自己的ip,如果被封了就再建立一个试试。
最底部会说明一下怎么自己建立代理,基本是无成本的秒级建立。。(另送福利)
以下内容全部转自jswh博客
欢迎大家访问查看原帖:
http://www.jswh.me/产品创造/synology-video-station-douban-plugin/
[*]前段时间搞了一个星际蜗牛 D 款,做了一点散热改装之后,装了黑群晖已经正常服役了两个多月了。用的最多应该就是下载和 Video Station,本来也是为了这个来的,省的老是要帮对象找各种在线资源。
Video Station 原生的刮削器只支持国外一些网站,速度慢不说很多国内的内容也没有信息。有一位老哥做了豆瓣得刮削器补丁,试用了一下。一开始感觉还不错,用了一段时间之后,发现数据有时候回滞后,豆瓣上明明有内容,通过插件却查找不到。
之后稍微研究了一下源代码,发现原作者是自己写了一组 API 供插件调用,可能是为了避免豆瓣得反爬虫屏蔽,API 内容应该是做缓存的。有一个现象是,有一个关键词一开始搜不出内容,但是搜索过一次过段时间之后就有内容了。所以猜测是通过搜索来触发缓存的异步更新了。
虽然用用也可以,但是总是不放心。一个是缓存策略导致数据滞后,另外就是万一哪天老哥把 API 停了就不能用了。反正代码也是 PHP 的的老本行就直接拿来改成了直接抓取豆瓣网页了。顺便把代码部署到了 github,安装相关说明直接安装即可使用。
synology_video_station_douban_plugin目前仅修改了电影数据的抓取代码,但是把搜索器也开放给了电视数据,所有理论上都是能搜索的了。还有一个问题是豆瓣的反扒比较严格,如果发现搜不到内容了,很可能是 ip 被封了,这时候建议直接重新拨号。
有问题可以在这里留言或者提 issue,让我们愉快得玩耍吧。2020-02-23更新找到了代理服务器的替代方案–cloudflare workers 更新后使用即可。目前worker是用的我的worker, 免费版本10w请求每天。如果后面免费量不够了或者我弃坑了,我会写一下替换worker的地址,现在懒得写了。 安装脚本也更新了,所以安装的时候要记得重新下载。2020-04-01更新
[*]删除了其他搜索源,只保留了豆瓣源
[*]封面图片也通过cf-worker获取
[*]修复部分数据抓取错误的bug
[*]安装脚本更新,从master分支下载最新代码。以后更新不用重新下载安装脚本了。
2020-04-09更新
[*]修改安装脚本自定义cf-worker地址.cf-worker部署说明:地址
https://i2.wp.com/www.jswh.me/wp-content/uploads/2019/08/%E6%89%B9%E6%B3%A8-2019-08-16-134543.jpg?resize=768%2C550
synology_video_station_douban_plugin
==========分割线===============
以下是快速建立防挂地址的方式。
1.打开 https://dash.cloudflare.com/sign-up,注册自己的账号。(怎么注册可以百度一下)
2.在个人主页中,右侧点击建立“workers”应用
3.点击“创建worker”
4.删除内置代码,复制下面的内容
addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request))
})
async function handleRequest(request) {
targetUrl = request.url.split('-----')
return await fetch(targetUrl)
}5.点击“保存并部署”
完工。(话说是不是有人发现还有其他用法了?我就不点破了,有专研精神的还可以找找什么是jsproxy。。)
按上面的方式已经建立了网址了,用小本子记下,下面第四步要用的哦。。。
安装:
1. ssh 登录群晖系统
2. 执行wget https://raw.githubusercontent.com/jswh/synology_video_station_douban_plugin/master/install.sh
3. 执行sudo bash install.sh uninstall (第一次安装可以跳过这个步骤)
4. 执行sudo bash install.sh install 'http://douban.abc.workers.dev'
这步记得更换地址哦。。。
卸载
1. ssh 登录群晖系统
2. 执行wget https://raw.githubusercontent.com/jswh/synology_video_station_douban_plugin/master/install.sh
3. 执行sudo bash install.sh uninstall
特别说明:
https://douban.abc.workers.dev/
1.上面这个网址是我自己乱写的,没有实际意义的。写你自己的就可以了。
2.网址中,douban,是自己重命名的,创建worker时会自动创建一个随机名,不想用可以重命名你要的,比如douban。
3.网址中,abc,是你自己注册worker时的子域名。(不能改的)
附属赠送
另外,已经用上的同学会发现,老版本和现在用的有些差别,在人名上,现在用的是豆瓣的原始名称“中文名 英文名”
这种方式对于已经用惯老版本的人来说会有点麻烦(老版本只有中文名),因为姓名不兼容,导致搜索人名时会有问题,而且也不统一,看着难受(处女座不要打我)。
解决方法也很简单,还是打开douban.php,找到183行。(插件目录见上面)
将下面代码添加进去。
$item['name']= explode(" ", $item['name']);
未修改前
foreach ($movie_data->{$fn}() as $item) {
if (!in_array($item['name'], $data[$key])) {
array_push($data[$key], format_the_name($item['name']));
}
}修改后
foreach ($movie_data->{$fn}() as $item) {
if (!in_array($item['name'], $data[$key])) {
$item['name']= explode(" ", $item['name']);
array_push($data[$key], $item['name']);
}
}然后就能和之前的版本兼容了。
douban.php,这个文件我找不到,麻烦楼主把路径贴全一些。{:7_182:} 收藏备用,感谢分享! 大神这二步如何操作了,没找到呢?1.找到douban.php。(在syno_file_assets文件夹中)
2.将第三行中的地址调整为刚刚建立的地址。 试试看效果如何 谢谢楼主,现在就去自建。 jzhu811 发表于 2020-4-7 08:02
douban.php,这个文件我找不到,麻烦楼主把路径贴全一些。
/var/packages/VideoStation/target/plugins
我已经补充在上面了{:7_187:} kof22205602 发表于 2020-4-7 14:17
大神这二步如何操作了,没找到呢?1.找到douban.php。(在syno_file_assets文件夹中)
2.将第三行中的地址 ...
已经更新了。具体目录是/var/packages/VideoStation/target/plugins 第27行 return '鏈煡';
第35行 return '鏈煡';
第77行 $data = $this->pregOneValue('/鍙堝悕:<\/span>(.*)<br\/>/');
第240行 #print_r(test('纰熶腑璋?', 'chs')); 显示的乱码正常吗?
刮削器显示的还是‘未知’ 刮削器显示的全部都是“未知” 我也是 刮削器显示的全部都是“未知” 其实用ds video已经越来越少了,为了几张照片有点麻烦的说。 请问楼主如何验证 建立 Worker 成功?
另外请发送请求以测试您的 Worker 的响应,这个是干啥的,需要测试吗?谢谢。 kof22205602 发表于 2020-4-8 09:10
第27行 return '鏈煡';
第35行 return '鏈煡';
第77行 $data = $this->pregOneVa ...
乱码有可能是你查看文件的时候编码不对。。。 IC1003 发表于 2020-4-8 09:18
刮削器显示的全部都是“未知”
那是因为ip被ban了。重新更换workers试试 kissgaby 发表于 2020-4-8 16:58
我也是 刮削器显示的全部都是“未知”
被封了IP。你可以试试换个workers试试 东张西望 发表于 2020-4-8 21:37
请问楼主如何验证 建立 Worker 成功?
另外请发送请求以测试您的 Worker 的响应,这个是干啥的,需要测试 ...
按步骤直接保存部署就好了,然后可以用地址尝试访问一下
例如,http://douban.abc.workers.dev/-----http://m.douban.com
看看能不能访问,如果可以就说明worker建立成功了。 20082010 发表于 2020-4-10 14:52
被封了IP。你可以试试换个workers试试
谢谢,我发现今天行了,应该是解封了吧. 好复杂啊 感谢~支持!!