已过期内容
以下内容因长期(至少5年)
未()更新而被从
我的用户页主页面移动至此,其中描述的内容可能与实际现状不符(例如外链可能已失效)。请读者自行辨别其准确性。
遇到不能复制歌词的网站怎么办?
- 按
Ctrl+U
看看HTML娘的胖次源代码里有没有。
- 搜一下有没有去掉鼠标按键限制的浏览器插件/扩展。
- 歌词嵌在flash里了?
- 如果是 utamap 上的歌词(例子),可以按照如下办法处理(感谢 Shirrak 在本页评论栏里提供情报):
- 从浏览器地址栏中将网页地址末尾的神秘代码复制出来。例:如果末尾有
surl=B30239
,那就复制 B30239
- 把地址栏中的内容改成
http://www.utamap.com/phpflash/flashfalsephp.php?unum=
- 将刚才的神秘代码添加到地址栏末尾,变成
http://www.utamap.com/phpflash/flashfalsephp.php?unum=B30239
- 最后回车即可。
- 由于服务器返回的HTTP头比较奇葩,所以你可能会看到满屏的乱码,并且没有换行。
- 使用
CTRL+U
查看源代码即可看到正确的换行。如果还有乱码请自行调整网页编码为 UTF-8 。
- 开头可能还会有 test 什么的,一般用不到所以是完全可以删掉的。
- 如果是 uta-net 上的歌词(例子2):
- 右键弹出的菜单会让你以为显示出来的歌词是一张图片。不过其实呢……
- 其实啊……呃……它就是张图片,嗯……只不过和常见的图片格式不同,它是 SVG 格式(维基百科)的,所以我们只需要直接右键另存就可以看到文本格式的歌词。
- 然而问题是该文件中包含大量的XML标签让人眼花缭乱。不过不用怕,它们是很有规律的:歌词的每一行都被包在 <text> 和 </text> 之间,所以解决办法就是使用正则把所有的 <text>+内容+</text>替换成 内容+换行,然后再删掉其他所有的标签即可。
- 如果你像我一样使用 Vim 的话,可以尝试这条咒语:
:%s/\(<text[^>]\+>\)\([^<]\{-}\)\(<\/text>\)/\2\r/g | %s/<[^>]\+>//g
- 从弹幕视频网站中找歌词
- 另寻他处,不要吊死在一棵树上。
- 或者尝试下面的这个不知道算不算黑科技的方法。
使用开发者工具抓歌词
现在常见的浏览器,包括IE娘、火狐娘和Chrome娘,都自带一个偷窥工具可以实时查看经过浏览器计算后的HTML源代码,也就是偷窥HTML娘和她的好姬友们(CSS娘、Javascript娘等)愉♀快地百合。
- Firefox 和 Chrome 里叫做开发者工具,快捷键
Ctrl+Shift+I
或 F12
(较老的版本可能只支持前者) 。
- IE 里叫做开发人员工具,快捷键
F12
。
利用这个工具,可以完全地绕过页面对鼠标按键的限制,抓取页面上几乎任意的文本内容。以火狐为例(Chrome也类似):
- 按下
Ctrl+Shift+I
打开开发者工具。
- 点击查看器。
- 点击查看器左边的小图标(鼠标悬停会提示从页面中选择一个元素的那个)。
- 点击网页上的歌词区域,查看器里会自动转到相应的代码。
- 在该代码上点击右键,选择复制内部HTML。
- 使用 Chrome 的话这里是 Copy -> Copy Element 。
- 然后再粘贴到任意的文本编辑器里即可。
不过这样复制出来的内容大多带有HTML标签,显然还需要把标签去掉。
通常标签不会很多,使用一般的查找替换功能即可方便快速地清理掉。比如:
不过如果标签很多很复杂的话,就需要使用正则表达式,甚至写脚本了。
从弹幕视频网站中找歌词
一些弹幕视频网站,比如 niconico(N站) 或 bilibili(B站),包含大量的仅以单个曲目为内容的视频,而其中的弹幕可能就包含该歌曲的完整歌词。
- 当然有条件(能翻墙或者在墙外)的还是优先选择 N站,毕竟国内网友贴的日文歌词有可能来自度娘旗下的网站(贴吧、知道等),而其中的汉字也有可能被擅自转成了简化字。
- 当然 B站 具有 N站 所没有的优势,那就是空耳,以及下面会提到的复制多条弹幕。
- 要复制弹幕,可以直接从右边的弹幕栏里选中所需弹幕后点右键选复制(N站是:このコメントをコピーする),也可以直接对着视频上的弹幕点右键选择复制(N站是:(弹幕内容)をコピーする)。
- 绝大多数歌词都有多行,不可能全部塞到一个弹幕里,所以要复制歌词自然希望能一次性复制多条弹幕。
- B站的弹幕栏原生支持一次性选择并复制多条弹幕,是不是感到很幸福?o(* ̄▽ ̄*)o
- 如果没感觉,那么来看看N站复制多条弹幕是多么的蛋疼:
- N站的弹幕栏目前并不原生支持选择多条弹幕。不过可以使用下面两种方法之一变相获取多条弹幕:
- 使用上面提到过的 开发者工具 就可以看到弹幕,只是需要自己写脚本去掉多余的HTML标签。除非你有能力并且有兴趣去写,不然不是很推荐。
- 其实使用一些小技巧即可以直接从弹幕栏里复制:
- 与B站不同,N站弹幕栏里的文字是可以像普通网页里的文字内容那样使用鼠标拖拽选中的,而且是可以用CTRL+C复制的。
- 但是如果你拖拽文本后松手,选区就消失了。
- 于是应对的方法很简单:拖拽后不松手,同时按CTRL+C,就OK啦!
- 但是复制出来的内容除了弹幕本身外还会有 编号、日期、时间信息。不过因为这些内容全都是单独占一行的,所以手动删掉一般也不会太麻烦。
- 当然如果弹幕实在太多,也建议写个脚本来清理(虽然我还没写过,不过因为没有HTML标签,应该比上面的第一种方法容易)。