易语言之今日头条新闻收集源码

.版本 2
.支持库 iext
.支持库 iconv
.支持库 eAPI

.程序集 窗口程序集_启动窗口

.子程序 _按钮1_被单击

进度条1.最大位置 = 10
进度条1.位置 = 0
.如果 (编辑框1.内容 = “”)
    信息框 (“请输入你要找的新闻!”, 0, “输入提示!”, )
    返回 ()
.否则
    头条新闻搜索 (编辑框1.内容)
.如果结束


.子程序 _按钮2_被单击

进度条1.最大位置 = 10
进度条1.位置 = 0
.如果 (编辑框1.内容 = “”)
    信息框 (“请输入你要找的新闻!”, 0, “输入提示!”, )
    返回 ()
.否则
    头条视频搜索 (编辑框1.内容)
.如果结束



.子程序 头条视频搜索
.参数 关键词, 文本型
.局部变量 网页源码, 文本型
.局部变量 正则_取数据, 正则表达式类
.局部变量 i, 整数型
.局部变量 表项索引, 整数型
.局部变量 l, 整数型

超级列表框1.全部删除 ()
' 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.插入表项 (, , , , , )
    '2018129133811秒” | “易语言高级选择夹子夹切换特效” | “http://toutiao.com/group/6516103548365701640/” | “七分酿月光”
    超级列表框1.置标题 (i - 1, 0, 编码_usc2到ansi (正则_取数据.取子匹配文本 (i, 2, )))
    超级列表框1.置标题 (i - 1, 1, 编码_usc2到ansi (正则_取数据.取子匹配文本 (i, 4, )))
    超级列表框1.置标题 (i - 1, 2, 时间戳到北京时间 (正则_取数据.取子匹配文本 (i, 1, )))
    超级列表框1.置标题 (i - 1, 3, 正则_取数据.取子匹配文本 (i, 3, ))
.计次循环尾 ()

.子程序 头条新闻搜索
.参数 关键词, 文本型
.局部变量 网页源码, 文本型
.局部变量 正则_取数据, 正则表达式类
.局部变量 i, 整数型
.局部变量 表项索引, 整数型
.局部变量 l, 整数型

超级列表框1.全部删除 ()
.计次循环首 (10, i)
    网页源码 = 网页源码 + 网页_访问S (“https://www.toutiao.com/search_content/?offset=” + 到文本 ((i - 1) × 20) + “&format=json&keyword=” + UTF8_URL编码 (关键词) + “&autoload=true&count=20&cur_tab=1&from=search_tab”) + #换行符
    进度条1.位置 = 进度条1.位置 + 1
.计次循环尾 ()
正则_取数据.创建 (#常量_新闻, 网页源码, , , , )
.计次循环首 (正则_取数据.取匹配数量 (), i)
    表项索引 = 超级列表框1.插入表项 (, , , , , )
    ' “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, 1, )), 编码_usc2到ansi (正则_取数据.取子匹配文本 (i, 2, )), 正则_取数据.取子匹配文本 (i, 3, ), 编码_usc2到ansi (正则_取数据.取子匹配文本 (i, 4, )))
.计次循环尾 ()


.子程序 时间戳到北京时间, 文本型
.参数 时间戳, 文本型

返回 (到文本 (增减时间 (到时间 (“1970.01.01 08:00:00”), #秒, 到整数 (时间戳))))


.子程序 UTF8_URL解码, 文本型
.参数 要解码的数据, 文本型
.局部变量 sz, 文本型, , "0"
.局部变量 i, 整数型
.局部变量 b, 整数型
.局部变量 sz1, 整数型, , "0"

sz = 分割文本 (要解码的数据, “%”, )
.计次循环首 (取数组成员数 (sz), i)
    b = 到整数 (进制转进 (sz [i], 16, 10))
    加入成员 (sz1, b)
.计次循环尾 ()
返回 (到文本 (编码转换 (子字节集替换 (到字节集 (sz1), { 0 }, {  }, , ), #编码_UTF_8, #编码_GBK, )))

.子程序 UTF8_URL编码, 文本型
.参数 要编码的数据, 文本型
.局部变量 字节集数据, 字节集
.局部变量 i, 整数型
.局部变量 b, 文本型
.局部变量 a, 文本型

字节集数据 = 编码转换 (到字节集 (要编码的数据), #编码_GBK, #编码_UTF_8, )
.计次循环首 (取字节集长度 (字节集数据), i)
    a = 进制转进 (到文本 (字节集数据 [i]), 10, 16)
    b = b + “%” + a
.计次循环尾 ()
返回 (b)

.子程序 进制转进, 文本型
.参数 被转换文本, 文本型, , 欲被转换的文本(不可以转换负数以及小数)
.参数 被转换进制, 整数型, , 被转换文本的进制(2-36之间)
.参数 转换的进制, 整数型, , 要转换到的进制(2-36之间)
.局部变量 欲转换文本, 文本型
.局部变量 临时文本, 文本型
.局部变量 临时数值, 长整数型
.局部变量 计次变量, 整数型

.如果真 (被转换进制 < 2 或 转换的进制 < 2 或 被转换进制 > 36 或 转换的进制 > 36)  ' 判断两个“进制系数”是否正确
    返回 (“”)
.如果真结束
被转换文本 = 到大写 (到半角 (被转换文本))  ' 规范参数
.计次循环首 (取文本长度 (被转换文本), 计次变量)
    临时文本 = 取文本中间 (被转换文本, 计次变量, 1)
    .如果真 (寻找文本 (取文本左边 (“0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ”, 被转换进制), 临时文本, , 假) = -1)
        跳出循环 ()
    .如果真结束
    .如果真 (计次变量 = 取文本长度 (被转换文本))
        临时文本 = “”
    .如果真结束

.计次循环尾 ()
.如果真 (临时文本 ≠ “”)
    返回 (“”)
.如果真结束
' 以上为数据处理代码
.如果真 (被转换进制 = 转换的进制)
    返回 (被转换文本)
.如果真结束
.计次循环首 (取文本长度 (被转换文本), 计次变量)  ' 整数转换开始
    临时数值 = (寻找文本 (“0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ”, 取文本中间 (被转换文本, 计次变量, 1), , 真) - 1) × 求次方 (被转换进制, 取文本长度 (被转换文本) - 计次变量) + 临时数值
.计次循环尾 ()
.判断循环首 (临时数值 > 转换的进制 - 1)
    欲转换文本 = 取文本中间 (“0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ”, 到数值 (到文本 (临时数值 % 转换的进制)) + 1, 1) + 欲转换文本
    临时数值 = 取整 (临时数值 ÷ 转换的进制)
.判断循环尾 ()
欲转换文本 = 取文本中间 (“0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ”, 临时数值 + 1, 1) + 欲转换文本  ' 整数转换结束
返回 (欲转换文本)

.子程序 _超级列表框1_左键单击表项

打开指定网址 (超级列表框1.取标题 (超级列表框1.现行选中项, 3))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值