天天看點

易語言之今日頭條新聞收集源碼

.版本 
.支援庫 iext
.支援庫 iconv
.支援庫 eAPI

.程式集 視窗程式集啟動視窗

.子程式 按鈕被單擊

進度條.最大位置 = 
進度條.位置 = 
.如果 (編輯框.内容 = “”)
    資訊框 (“請輸入你要找的新聞!”, , “輸入提示!”, )
    傳回 ()
.否則
    頭條新聞搜尋 (編輯框.内容)
.如果結束


.子程式 按鈕被單擊

進度條.最大位置 = 
進度條.位置 = 
.如果 (編輯框.内容 = “”)
    資訊框 (“請輸入你要找的新聞!”, , “輸入提示!”, )
    傳回 ()
.否則
    頭條視訊搜尋 (編輯框.内容)
.如果結束



.子程式 頭條視訊搜尋
.參數 關鍵詞, 文本型
.局部變量 網頁源碼, 文本型
.局部變量 正則取資料, 正規表達式類
.局部變量 i, 整數型
.局部變量 表項索引, 整數型
.局部變量 l, 整數型

超級清單框.全部删除 ()
' https://www.toutiao.com/search_content/?offset=0&format=json&keyword=%E8%B4%B8%E6%98%93%E6%88%98&autoload=true&count=20&cur_tab=2&from=video
.計次循環首 (10, i)
    網頁源碼 = 網頁源碼 + 網頁_通路S (“https://www.toutiao.com/search_content/?offset=” + 到文本 ((i - 1) × 20) + “&format=json&keyword=” + UTF8_URL編碼 (關鍵詞) + “&autoload=true&count=20&cur_tab=2&from=video”) + #換行符
    進度條1.位置 = 進度條1.位置 + 1
.計次循環尾 ()
正則_取資料.建立 (#常量_視訊, 網頁源碼, , , , )
.計次循環首 (正則_取資料.取比對數量 (), i)
    表項索引 = 超級清單框1.插入表項 (, , , , , )
    ' “年月日時分秒” | “易語言進階選擇夾子夾切換特效” | “http://toutiao.com/group/6516103548365701640/” | “七分釀月光”
    超級清單框.置标題 (i - , , 編碼_usc2到ansi (正則取資料.取子比對文本 (i, , )))
    超級清單框.置标題 (i - , , 編碼_usc2到ansi (正則取資料.取子比對文本 (i, , )))
    超級清單框.置标題 (i - , , 時間戳到中原標準時間 (正則取資料.取子比對文本 (i, , )))
    超級清單框.置标題 (i - , , 正則取資料.取子比對文本 (i, , ))
.計次循環尾 ()

.子程式 頭條新聞搜尋
.參數 關鍵詞, 文本型
.局部變量 網頁源碼, 文本型
.局部變量 正則取資料, 正規表達式類
.局部變量 i, 整數型
.局部變量 表項索引, 整數型
.局部變量 l, 整數型

超級清單框.全部删除 ()
.計次循環首 (, i)
    網頁源碼 = 網頁源碼 + 網頁通路S (“https://www.toutiao.com/search_content/?offset=” + 到文本 ((i - ) × ) + “&format=json&keyword=” + UTF8_URL編碼 (關鍵詞) + “&autoload=true&count=&cur_tab=&from=search_tab”) + #換行符
    進度條.位置 = 進度條.位置 + 
.計次循環尾 ()
正則取資料.建立 (#常量_新聞, 網頁源碼, , , , )
.計次循環首 (正則取資料.取比對數量 (), i)
    表項索引 = 超級清單框.插入表項 (, , , , , )
    ' “2018年1月29日13時38分11秒” | “易語言進階選擇夾子夾切換特效” | “http://toutiao.com/group/6516103548365701640/” | “七分釀月光”
    超級清單框1.置标題 (i - 1, 0, 編碼_usc2到ansi (正則_取資料.取子比對文本 (i, 2, )))
    超級清單框1.置标題 (i - 1, 1, 時間戳到中原標準時間 (正則_取資料.取子比對文本 (i, 1, )))
    超級清單框1.置标題 (i - 1, 2, 編碼_usc2到ansi (正則_取資料.取子比對文本 (i, 4, )))
    超級清單框1.置标題 (i - 1, 3, 正則_取資料.取子比對文本 (i, 3, ))
    ' 調試輸出 (時間戳到中原標準時間 (正則取資料.取子比對文本 (i, , )), 編碼_usc2到ansi (正則取資料.取子比對文本 (i, , )), 正則取資料.取子比對文本 (i, , ), 編碼_usc2到ansi (正則取資料.取子比對文本 (i, , )))
.計次循環尾 ()


.子程式 時間戳到中原標準時間, 文本型
.參數 時間戳, 文本型

傳回 (到文本 (增減時間 (到時間 (“. 08::”), #秒, 到整數 (時間戳))))


.子程式 UTF8_URL解碼, 文本型
.參數 要解碼的資料, 文本型
.局部變量 sz, 文本型, , "0"
.局部變量 i, 整數型
.局部變量 b, 整數型
.局部變量 sz1, 整數型, , "0"

sz = 分割文本 (要解碼的資料, “%”, )
.計次循環首 (取數組成員數 (sz), i)
    b = 到整數 (進制轉進 (sz [i], , ))
    加入成員 (sz1, b)
.計次循環尾 ()
傳回 (到文本 (編碼轉換 (子位元組集替換 (到位元組集 (sz1), {  }, {  }, , ), #編碼_UTF_8, #編碼_GBK, )))

.子程式 UTF8_URL編碼, 文本型
.參數 要編碼的資料, 文本型
.局部變量 位元組集資料, 位元組集
.局部變量 i, 整數型
.局部變量 b, 文本型
.局部變量 a, 文本型

位元組集資料 = 編碼轉換 (到位元組集 (要編碼的資料), #編碼_GBK, #編碼_UTF_8, )
.計次循環首 (取位元組集長度 (位元組集資料), i)
    a = 進制轉進 (到文本 (位元組集資料 [i]), , )
    b = b + “%” + a
.計次循環尾 ()
傳回 (b)

.子程式 進制轉進, 文本型
.參數 被轉換文本, 文本型, , 欲被轉換的文本(不可以轉換負數以及小數)
.參數 被轉換進制, 整數型, , 被轉換文本的進制(-之間)
.參數 轉換的進制, 整數型, , 要轉換到的進制(-之間)
.局部變量 欲轉換文本, 文本型
.局部變量 臨時文本, 文本型
.局部變量 臨時數值, 長整數型
.局部變量 計次變量, 整數型

.如果真 (被轉換進制 <  或 轉換的進制 <  或 被轉換進制 >  或 轉換的進制 > )  ' 判斷兩個“進制系數”是否正确
    傳回 (“”)
.如果真結束
被轉換文本 = 到大寫 (到半角 (被轉換文本))  ' 規範參數
.計次循環首 (取文本長度 (被轉換文本), 計次變量)
    臨時文本 = 取文本中間 (被轉換文本, 計次變量, )
    .如果真 (尋找文本 (取文本左邊 (“89ABCDEFGHIJKLMNOPQRSTUVWXYZ”, 被轉換進制), 臨時文本, , 假) = -)
        跳出循環 ()
    .如果真結束
    .如果真 (計次變量 = 取文本長度 (被轉換文本))
        臨時文本 = “”
    .如果真結束

.計次循環尾 ()
.如果真 (臨時文本 ≠ “”)
    傳回 (“”)
.如果真結束
' 以上為資料處理代碼
.如果真 (被轉換進制 = 轉換的進制)
    傳回 (被轉換文本)
.如果真結束
.計次循環首 (取文本長度 (被轉換文本), 計次變量)  ' 整數轉換開始
    臨時數值 = (尋找文本 (“89ABCDEFGHIJKLMNOPQRSTUVWXYZ”, 取文本中間 (被轉換文本, 計次變量, ), , 真) - ) × 求次方 (被轉換進制, 取文本長度 (被轉換文本) - 計次變量) + 臨時數值
.計次循環尾 ()
.判斷循環首 (臨時數值 > 轉換的進制 - )
    欲轉換文本 = 取文本中間 (“89ABCDEFGHIJKLMNOPQRSTUVWXYZ”, 到數值 (到文本 (臨時數值 % 轉換的進制)) + , ) + 欲轉換文本
    臨時數值 = 取整 (臨時數值 ÷ 轉換的進制)
.判斷循環尾 ()
欲轉換文本 = 取文本中間 (“89ABCDEFGHIJKLMNOPQRSTUVWXYZ”, 臨時數值 + , ) + 欲轉換文本  ' 整數轉換結束
傳回 (欲轉換文本)

.子程式 _超級清單框1_左鍵單擊表項

打開指定網址 (超級清單框1.取标題 (超級清單框1.現行選中項, 3))


           

繼續閱讀