已過期內容
以下內容因長期(至少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標籤,應該比上面的第一種方法容易)。