Stata小程序: 提取簡書文章列表
作者:連玉君 (知乎 | 簡書 | 碼雲 | github)
Stata 寒假班 報名中……
連玉君主講,2018年1月13日-21日
,北京Stata初級班|Stata高級班 | Stata全程班
問題背景:
- 在每一篇簡書推文的末尾,我都會加上【往期回顧】欄目,如【圖1】。
- 這些超鏈接文字對應的 Markdown 語句挺繁瑣,見【圖2】。
- 我以前笨,手動操作,需要從我的簡書主頁 (圖3) 中逐個【複製】→ 【粘貼】4 次才能完成一個鏈接。
解決辦法:用 Stata 寫個小程序!
思路:
- 用
copy
命令從我的【簡書主頁】讀取 網頁數據,存儲到一個文本文件中; - 用
infix
命令將上述文本文件讀取為 Stata 格式的數據; - 使用
subinstr()
等字元函數或正則表達式處理網頁中的無用信息,進而將處理好的乾淨文本改寫為 Markdown 格式的鏈接; - 用
export delimited
命令把處理好的數據讀入文本文件,進而用shellout
命令打開這個文本文件; - 從文本文件中複製自動生成的鏈接文字,貼入簡書 Markdown 編輯器。
使用方法:
- 把上述代碼寫成 Stata 程序,即
.ado
格式的程序文件,命名為jslist.ado
; - 每次使用時,在 Stata 命令窗口中輸入
jslist
即可自動生成【圖2】中的 Markdown 文本。參見【圖4】和【圖5】。
*! 呈現連玉君的簡書文章列表 Markdown 格式n*! 2017/6/18 12:29n*! 後續工作:把這個 txt 文檔的內容直接寫入 搜狗 短語文件中,n*! 鍵盤輸入時,只需輸入 jslist 即可插入最新列表nnprogram define jslistnversion 15nn *-從簡書個人主頁copy個人文章列表nn cd "D:stata15adopersonalJianshujianshuList"nn*----------------------quietly------------bein--- nqui{ n copy "http://www.jianshu.com/u/69a30474ef33" "jianshu_list.txt", replace nn *-將網頁 txt 文檔讀入 stata n local ff "jianshu_list"n infix strL var 1-3000 using "`ff.txt", clearnn *-去除無用 codes, 保留所需代碼 n format var %-600s n keep if strmatch(var, `"*<a class="title" target="_blank" href="/p/*")n replace var=subinstr(var,"/p/","http://www.jianshu.com/p/",.)n replace var=subinstr(var,`"href="","<",1)n replace var=subinstr(var,`"">","<",1)nn *-將處理後的文本轉換成 Markdown 鏈接語句 n split var, parse(<)n keep var3 var4n rename (var3 var4) (url title)n order title urln replace title = "- [" + titlen replace title = title + "]"n replace url = subinstr(url,"http","(http",.)n replace url = url+")"n gen v = title+urln format v %-300s n keep vnn *-輸出處理好的 txt 文本,並直接打開 txt 文檔n export delimited using "`ff_out.txt", novar nolabel replacenn shellout "`ff_out.txt"n} n*----------------------quietly------------over--- nnendn
jslist.ado 文檔
可以進一步擴展的地方
- 把
jslist.ado
輸出的 txt 文檔內容直接寫入 (help file write
) 搜狗 短語文件中;當使用搜狗輸入法時,只需輸入 jslist 即可插入最新列表; - 添加一個選項
url(string)
,可以讓用戶自己指定需要訪問的簡書主頁; - 目前的程序還無法獲取完整的簡述文章列表,還需要分析網頁;
往期回顧
- 在 Markdown 中使用 HTML 中的特殊符號
- 新數據,新視角!獲取特殊數據的軟體
- Stata幫助和網路資源匯總(持續更新中)
- 協整:醉漢牽著一條狗
- 在 Markdown 中快速插入文字連接
- Stata dofile 轉換 PDF 製作講義方法
- Github使用方法及Stata資源
- 碼云:我把常用小軟體都放這兒了
- 連玉君的鏈接
Stata 寒假班 報名中……
連玉君主講,2018年1月13日-21日
,北京Stata初級班?|?Stata高級班? | ?Stata全程班
http://weixin.qq.com/r/7Ujm-tfEHIpjrZOd9x3- (二維碼自動識別)
推薦閱讀:
※Stata dofile 轉換 PDF 製作講義方法
※教師利器:ZoomIt 4.5 屏幕縮放小軟體
※應用stata過程中,遇到過哪些特別棘手但最終得以解決的問題?
※零基礎如何入門stata?