易语言编辑框框如何获取超文本浏览框网页文字的超链接

易语言编辑框框如何获取超文本浏览框网页文字的超链接
比如百度首页取 新闻 这个词的超链接 应该怎么取

请您先在易语言中添加组件编辑框1、按钮1和超文本浏览框1,再把下面的代码复制到代码编辑区里。

.版本 2

.支持库 HtmlView

.支持库 internet

.程序集 窗口程序集

.子程序 __启动窗口_创建完毕

超文本浏览框1.地址 = “http://www.baidu.com

.子程序 取指定内容, 文本型

.参数 完整内容, 文本型

.参数 左边文本, 文本型

.参数 右边文本, 文本型

.局部变量 临时位置, 整数型

.局部变量 内容长度, 整数型

.局部变量 取出内容, 文本型

内容长度 = 取文本长度 (完整内容)

临时位置 = 寻找文本 (完整内容, 左边文本, , 假) + 取文本长度 (左边文本)

取出内容 = 取文本中间 (完整内容, 临时位置, 内容长度)

内容长度 = 取文本长度 (取出内容)

临时位置 = 寻找文本 (取出内容, 右边文本, , 假) - 1

取出内容 = 取文本中间 (取出内容, 1, 临时位置)

返回 (取出内容)

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

.局部变量 文本, 文本型

文本 = 到文本 (HTTP读文件 (超文本浏览框1.地址))  ' 读取百度的HTML

.如果 (寻找文本 (文本, “退出”, , 假) ≠ -1)  ' 如果登录了百度,那么就有“退出”这个链接

    文本 = 取指定内容 (文本, “退出”, “新闻”)  ' 百度新闻的地址在“退出”和“新闻”之间

    文本 = 取指定内容 (文本, “<a href=”, “>”)  ' 连接前面有“<a href=”,后面有“>”,而中间的就是新闻的连接了

.否则

    文本 = 取指定内容 (文本, “点此进入 百度的空间”, “新”)  ' 如果没有登录百度,那么在“新闻”前面的就是“点此进入 百度的空间”

    文本 = 取指定内容 (文本, “href=” + #引号, #引号 + “>”)  ' 这里比上面的前后各多了引号

.如果结束

编辑框1.内容 = 文本  ' 将取到的地址输出到编辑框上

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-02-05

用正则,还有网页要转码.像百度的话,首页是utf-8.什么编码,可以看看源码的标头,或者看浏览器右键

.版本 2

.支持库 HtmlView

.支持库 RegEx

.支持库 internet

.支持库 iconv

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

编辑框超链接地址.内容 = 取网页链接地址 (超文本浏览框1.地址, “新闻”)

.子程序 取网页链接地址, 文本型

.参数 _网页地址, 文本型

.参数 _链接文本, 文本型

.参数 _超链接引号, 文本型, 可空, 超链接地址可能用引号括起来,可能是单引号,双引号,或者没有引号.默认没有引号

.局部变量 网页文件, 字节集

.局部变量 网页文本, 文本型

.局部变量 正则, 正则表达式

.局部变量 结果, 搜索结果

.局部变量 结果文本, 文本型

网页文件 = HTTP读文件 (_网页地址)

网页文本 = 到文本 (编码转换 (网页文件, #编码_UTF_8, #编码_GB2312, ))

.如果真 (网页文本 = “”)

    网页文本 = 到文本 (编码转换 (网页文件, #编码_UTF_8, #编码_GB18030, ))

.如果真结束

.如果真 (网页文本 = “”)

    网页文本 = 到文本 (编码转换 (网页文件, #编码_UTF_8, #编码_GBK, ))

.如果真结束

.如果真 (网页文本 = “”)

    网页文本 = 到文本 (网页文件)

.如果真结束

.如果真 (网页文本 = “”)

    信息框 (“网页内容转码失败!”, #警告图标, “提示”)

    返回 (“”)

.如果真结束

正则.创建 (“<a href=” + _超链接引号 + “[^>]*” + _超链接引号 + “>” + _链接文本 + “</a>”, 假)

结果 = 正则.搜索 (网页文本, 1, )

.如果真 (结果.是否为空 ())

    信息框 (“找不到!”, #信息图标, “提示”)

    返回 (“”)

.如果真结束

结果文本 = 结果.取匹配文本 (网页文本, )

结果文本 = 子文本替换 (结果文本, “<a href=” + _超链接引号, , , , 真)

结果文本 = 子文本替换 (结果文本, _超链接引号 + “>” + _链接文本 + “</a>”, , , , 真)

返回 (结果文本)

第2个回答  2012-02-05
先添加数据库 然后再按下面的
第3个回答  2012-02-05
http读文件
然后把读回来的网页源代码分割
相似回答