制作游戏辅助教材推荐:抓取网页指定内容资料,获取网页里的图片
来源:按键学院  【按键精灵】
     最近有遇到同学反馈,网页里的那些没有特征值的文本元素不知道怎么获取。以及,不知道怎么获取保存网页里出现的图片。
获取网页指定文字: 
目前按键支持的元素特征值有这些:   frame(框架) 、id(唯一标识) 、tag(标签) 、type(类型)、txt(文本) 、value(特征) 、index(索引) 、name(名字)   拥有这些特征值的元素才能直接使用HtmlGet命令来获取元素文本信息。
命令名称:
  HtmlGet 获取网页元素的信息
命令功能:
   获取网页元素指定属性的信息
命令参数:
   参数1:字符串型,网页元素属性类型:text、html、 outerHtml、value、  src、  href、 offset
   参数2:字符串型,网页元素特征字符串
    例如下面的例子,按键精灵论坛搜索框,它有type、name、id这三个特征值。
    我们取它id特征值带入到HtmlGet 命令来查看下结果:
Call Plugin.Web.Bind("")
Call ("bbs.anjian/forum-250-1.html")  //要提取信息的网站
Txt=Plugin.Web.HtmlGet("value","id:scbar_txt")
TracePrint Txt
成功获取到了搜索框的value值。
我们现在想要取下面红区域块的帖子标题,想要把一个页面中的这些帖子名称都取出来。该怎么办?
 
    这些文字,都没有特征值的。我们不能使用特征值的方式去他们。     
    我们可以这样——  获取到整个网页的文本之后,去我们要取的标题,前后不变的字符。
   
大家会发现,这个页面中,帖子标题前后不便的字符是:“]“ 和 “果果。。“ 那我们就将”]“字符前面的文本都过滤掉,“果果。。“后面的文本也过率掉,这样就能得到我们所需要的文本。
首先,我们需要复习下几个函数:
InStr函数
描述
start
可选的。规定每次搜索的起始位置。默认是搜索起始位置是第一个字符。如果已规定 compare 参数,则必须有此参数。
string1
必需的。需要被搜索的字符串。
string2
必需的。需搜索的字符串。
游戏辅助框架免rootcompare
必需的。规定要使用的字符串比较类型。默认是 0 。可采用下列值:          0= vbBinaryCompare - 执行二进制比较。 1 = vbTextCompare - 执行文本比较。
小程序自己免费做   
Mid函数深入理解android
描述
魔方教程一步一步图解 第3讲
string
必需的。从其中返回字符的字符串表达式。如果字符串包含 Null,则返回 Null。
start
java编程是干什么
必需的。规定起始位置。如果设置为大于字符串中的字符数目,则返回空字符串("")。
length
可选的。要返回的字符数目。如果省略或 length 超过文本的字符数,将返回字符串中从 start 到字符串结  束的所有字符。
Len函数
描述
string
任意有效的字符串表达式。如果 string 参数包含Null,则返回 Null
varname
任意有效的变量名。如果 varname参数包含 Null,则返回 Null
脚本过程:
1.     先打开一个要提取信息的网站。
2.     用  HtmlGet 命令 获取整个网页的文本信息,存到Txt变量里面
phpstudy 20163.     过滤]符号前面的文本 
4.     从文本里的"]"符号后面的位置开始取字符串,这里取了一百个字符放到命名为cc的变量里。如下图,也可以设置取80个字符,60个字符,但是长度一定要把“果果。。” 给截进来,因为后面我们要通过“果果。。”作为基准,去过滤掉不要的文字。
2014-9-12 19:22 上传
下载附件(65.96 KB)
5.     在cc变量里,果果。。出现的位置,到之后,截取“果果。。”之前的文本,也就是我们需要接取的地方。
6.     最后,设置叠加的变量x,把每次到的"]" 这个符号的位置放到变量x里进行累加,累加之后第二次循环,就会跳过之前过的内容,进行新的内容的寻。
源码:
Call Plugin.Web.Bind("")
Call ("bbs.anjian/forum-250-1.html")  //要提取信息的网站
Delay 1000 // 如果网页打开速度慢,可适当添加延迟
Txt =Plugin.Web.HtmlGet("text","")  //获取网页的文本
x=1
Do
    aa = "]"  //过滤]符号前面的文本
    bb = InStr(x, Txt, aa) // 返回aa变量里的"["这个字符 在整个网页文本txt里的位置
    cc = Mid(Txt, bb + Len(aa), 100)//从文本里的"]"符号后面的位置开始取字符串,这里取了一百个字符
    dd = InStr(1, cc, "果果。。")//cc字符串里,果果。。出现的位置,果果。。的位置就
是我们要接取的字符串的长度
    ee = Mid(cc, 1, dd)//从文本里cc里第一个字符开始,取到果果。。文字出现的位置
    If Len(ee) <> 0 Then   //判断有没有取到匹配的字符
        pp = Left(ee, Len(ee)-1)  //如果有取到,我们还要做下处理,因为前面ee字符串是取到了果果。。出现的位置,所以果字也被取了,我们这里长度-1,去掉果字
        TracePrint pp
        x = InStr(x, Txt, pp) //这里做个记号,把每次到的"]" 这个符号的位置进行累加,累加之后第二次循环,就会跳过之前过的内容,进行新的内容的寻。
    Else
        Exit Do   //如果没有到匹配的 就退出
    End If
Loop
    最终效果:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。