[問題] parse ptt web 的問題

看板Ajax作者 (罹患重度能年病的燕叔)時間7年前 (2017/05/15 14:47), 7年前編輯推噓0(001)
留言1則, 1人參與, 最新討論串1/1
小弟有寫一個 parse web ptt 推文統計的服務給鄉民使用, 這一陣子有人反應統計後的數量不太對, 不過因為工作也忙, 所以沒太仔細看. 今天早上稍微看了一下才發現, 原來是有些推文似乎被當作電子郵件 因為目前分隔符號使用 @, 所以有好幾個推文都變成了 [email protected], 而且 parse 回來的內容有些也會自動被轉換成那樣的格式, 即使網頁上看到的是正常的. 目前災情實際狀況的連結: https://www.ptt.cc/bbs/LoveLive_Sip/M.1493798864.A.36B.html 而被轉換過後的選項點下去後連到這邊 https://www.ptt.cc/cdn-cgi/l/email-protection 而裡面有一段是這樣的 You must enable Javascript in your browser in order to decode the e-mail address. 從這看起來似乎有辦法在前端就 decode 了, 所以想請問一下有人實作過這一段嗎? 如果沒辦法就只好換個分隔符號了 囧rz -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.137.41.198 ※ 文章網址: https://www.ptt.cc/bbs/Ajax/M.1494830858.A.E73.html

05/15 15:33, , 1F
關鍵字 Cloudflare Email Protection Decoder
05/15 15:33, 1F
也對齁, 都忘了先找一下 keyword 了. 金拍謝. XD 有找到後端的 decode sample code 了, 感恩~ 附上 python/php sample code, 有需要的人就不用花時間找惹 ._. http://blog.safebuff.com/2016/06/01/Cloudflare-Email-Protection-Decoder/ go language sample code https://gist.github.com/AbeEstrada/11e4511f9915b00f9714 剛把 code 轉成 java 版, 順便貼一下 public static Integer hexdec(String c) { return Integer.parseInt(c, 16); } public static String deCFEmail(String c) throws IOException { int h = hexdec(c.substring(0, 2)); StringBuffer str = new StringBuffer(); for(int i = 2; i < c.length() - 1; i += 2) { str.append((char) (hexdec(c.substring(i, i + 2)) ^ h)); } return new String(str.toString().getBytes("ISO8859-1")); } ※ 編輯: swallowcc (220.137.41.198), 05/15/2017 18:13:03
文章代碼(AID): #1P6KyAvp (Ajax)
文章代碼(AID): #1P6KyAvp (Ajax)