易语言

关注公众号 jb51net

关闭
首页 > 软件编程 > 易语言 > 易语言百度知道采集器

易语言用正则采集百度知道的代码

作者:易语言源码教程

今天小编就为大家分享一篇关于易语言用正则采集百度知道的代码,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

常量数据表

.版本 2
.常量 标题, "<文本长度: 25>", , "ti"((\r\n|\s*).*>.*)</a>
.常量 标题需替换的内容, "<文本长度: 17>", , target="_blank">
.常量 提问时间, "<文本长度: 36>", , "mr-8">(\d{4,}-\d{1,}-\d{1,})</span>
.常量 帖子链接与回答数量, "<文本长度: 93>", , <a href="(http:.*)" rel="external nofollow" target="_blank" class="f-light nod" data-   log="pos:ans,si:\d{1,}">(.*)</a>
.常量 回答内容, "<文本长度: 40>", , <i class="i-answer-text">答:</i>.*</dd>
.常量 回答内容需替换的, "<文本长度: 25>", , <i class="i-answer-text">
.常量 回答者, "<文本长度: 27>", , 回答者:<a href=.*>(.*)</a>

百度知道采集器

此功能需要加载精易模块5.6

.版本 2
.支持库 iext
.程序集 窗口程序集1
.程序集变量 搜索的内容, 文本型
.程序集变量 网页源码, 文本型
.程序集变量 页码变量, 整数型
.程序集变量 网址, 文本型
.子程序 _按钮_搜索_被单击
.局部变量 i, 整数型
.局部变量 i2, 整数型
.局部变量 i3, 整数型
.如果 (编辑框_搜索内容.内容 ≠ “”)
  超级列表框1.全部删除 ()
  .判断循环首 (页码变量 < 21)
    搜索内容 ()
    正则 ()
    页码变量 = 页码变量 + 10
  .判断循环尾 ()
  .计次循环首 (超级列表框1.取表项数 (), i2)
    超级列表框1.置标题 (i2 - 1, 0, 到文本 (i2))
  .计次循环尾 ()
  页码变量 = 0
.否则
  信息框 (“请先输入要搜索的问题”, #信息图标, “提示”)
  编辑框_搜索内容.获取焦点 ()
.如果结束
.子程序 搜索内容
按钮_搜索.标题 = “正在搜索中...”
搜索的内容 = 编辑框_搜索内容.内容
网址 = “http://zhidao.baidu.com/search?word=” + 编码_URL编码 (搜索的内容) + “&ie=gbk&site=-1&sites=0&date=0&pn=” + 到文本 (页码变量)
网页源码 = 网页_取网页源码 (网址)
.子程序 正则
.局部变量 正则标题与序号, 正则表达式类
.局部变量 局_计次, 整数型
.局部变量 表项索引, 整数型
.局部变量 正则链接与回答数, 正则表达式类
.局部变量 正则回答, 正则表达式类
.局部变量 正则回答时间, 正则表达式类
.局部变量 正则回答者, 正则表达式类
正则标题与序号.创建 (#标题, 网页源码)
正则链接与回答数.创建 (#帖子链接与回答数量, 网页源码)
正则回答.创建 (#回答内容, 网页源码)
正则回答时间.创建 (#提问时间, 网页源码)
正则回答者.创建 (#回答者, 网页源码)
.计次循环首 (正则标题与序号.取匹配数量 (), 局_计次)
  表项索引 = 超级列表框1.插入表项 (, , , , , )
  超级列表框1.置标题 (表项索引, 1, 文本_替换 (正则标题与序号.取子匹配文本 (局_计次, 1), , , , “>”, “”, “<em>”, “”, “</em>”, “</a>”, “<em”, “”, “</em”, “”)) ' 标题
  .如果 (寻找文本 (正则链接与回答数.取子匹配文本 (局_计次, 1), “html”, , 假) = -1)
    超级列表框1.置标题 (表项索引, 4, “”)
  .否则
    超级列表框1.置标题 (表项索引, 4, 正则链接与回答数.取子匹配文本 (局_计次, 1)) ' 链接
  .如果结束
  超级列表框1.置标题 (表项索引, 2, 文本_替换 (正则回答.取匹配文本 (局_计次, ), , , , #回答内容需替换的, “”, “</i>”, “”, “<em>”, “”, “</em>”, “”, “</dd>”, “”)) ' 回答
  超级列表框1.置标题 (表项索引, 3, 正则链接与回答数.取子匹配文本 (局_计次, 2)) ' 回答的数量
  超级列表框1.置标题 (表项索引, 5, 正则回答时间.取子匹配文本 (局_计次, 1)) ' 回答的时间
.计次循环尾 ()
按钮_搜索.标题 = “搜索答案”
.子程序 _超级列表框1_被双击, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
_预览此内容_被选择 ()
.子程序 _预览此内容_被选择
.如果真 (信息框 (_启动窗口.超级列表框1.取标题 (_启动窗口.超级列表框1.现行选中项, 2) + #换行符 + “-------------------------------” + #换行符 + “是否浏览更多回答?”, #是否钮 + #询问图标, 超级列表框1.取标题 (超级列表框1.现行选中项, 1)) = #是钮)
  _打开此链接_被选择 ()
.如果真结束
.子程序 _超级列表框1_鼠标右键被按下, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
.如果真 (超级列表框1.取表项数 () ≠ 0)
  弹出菜单 (菜单, , )
.如果真结束
.子程序 _打开此链接_被选择
网页_打开指定网址 (超级列表框1.取标题 (超级列表框1.现行选中项, 4))
.子程序 _复制回答_被选择
.如果真 (置剪辑板文本 (超级列表框1.取标题 (超级列表框1.现行选中项, 2)) = 真)
  信息框 (“成功复制!”, #信息图标, “复制成功”)
.如果真结束
.子程序 __启动窗口_创建完毕
页码变量 = 0
编辑框_搜索内容.获取焦点 ()
.子程序 _复制此链接_被选择
.如果真 (置剪辑板文本 (超级列表框1.取标题 (超级列表框1.现行选中项, 4)) = 真)
  信息框 (“成功复制!”, #信息图标, “复制成功”)
.如果真结束
.子程序 _编辑框_搜索内容_内容被改变
.如果真 (编辑框_搜索内容.内容 = “”)
  页码变量 = 0
.如果真结束
.子程序 _编辑框_搜索内容_按下某键, 逻辑型
.参数 键代码, 整数型
.参数 功能键状态, 整数型
.如果真 (键代码 = #回车键)
  _按钮_搜索_被单击 ()
.如果真结束
.子程序 _获取更多回答_被选择
网页_打开指定网址 (“http://zhidao.baidu.com/search?word=” + 编码_URL编码 (搜索的内容) + “&ie=gbk&site=-1&sites=0&date=0&pn=0”)
.子程序 _按钮_关闭_被单击
结束 ()
.子程序 _按钮_获取更多回答_被单击
_获取更多回答_被选择 ()

运行结果:

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

您可能感兴趣的文章:
阅读全文