找回密码
 加入
搜索
查看: 9950|回复: 16

[IE类操作] 请教网页抓字符串的匹配问题,可能是bug,求高手

  [复制链接]
发表于 2011-4-20 21:59:07 | 显示全部楼层 |阅读模式
本帖最后由 lluxury 于 2011-4-21 15:04 编辑

我从网页抓的值,$mon的值是百花谷,为什么if条件总不成立,是引号的关系么

$oTd = _IETagNameGetCollection ($oIE, "td",0)
        $str=_IEPropertyGet($oTd, "innertext")
                                $mon=StringTrimLeft ( $str,3 )
                               
        If $mon="百花谷" then
                MsgBox(0, 0, $mon)
        $oForm = _IEFormGetCollection ($oIE, 1)
        $oSelect = _IEFormElementGetObjByName ($oForm, "method")
                        _IEFormElementOptionSelect ($oSelect,1,1, "byIndex")
        EndIf
                       


付源码,
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<link rel="stylesheet" type="text/css" href="inc/style.css">

<title>武侠世界</title>
<link href="color/color1.css" type="text/css"  />
<script type="text/javascript" src="Ajax.js"></script>
</head>
<body>
<center>
<div id="header">
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
        <tr>
                <td align="center"><font class="font_map" size="5"><b>位置:百花谷</b></font>
                </td>
 楼主| 发表于 2011-4-21 12:03:03 | 显示全部楼层
本帖最后由 lluxury 于 2011-4-21 18:14 编辑

网页抓出的值 :
位置:铁掌山 +>18:12:33 AutoIT3.exe 完成:[CODE]:0
截断,问题发生了
铁掌山 3??+>15:00:44 AutoIT3.exe 完成:[CODE]:0

求3??的去除方法
发表于 2011-4-21 16:07:37 | 显示全部楼层
应该是 StringTrimLeft 函数处理中文的问题。不如msg一下看整个字符串是什么东西
发表于 2011-4-21 17:05:26 | 显示全部楼层
$str="位置:百花谷"
$mon=StringTrimLeft ( $str,3 )
MsgBox(0, 0, $mon)

这部分的结果是 百花谷 没错
$oTd = _IETagNameGetCollection ($oIE, "td",0)
        $str=_IEPropertyGet($oTd, "innertext")
MsgBox(0, 0, $str) ;加这么一句看看你获取的文字是不是 “位置:百花谷”
发表于 2011-4-21 17:06:34 | 显示全部楼层
另外楼主把这个游戏的网址发出来吧,我也想一遍玩一遍学习的编辅助
 楼主| 发表于 2011-4-21 18:03:09 | 显示全部楼层
回复 4# 骗子

兄弟你太浮躁了,我之前也被这个问题困扰了1天,msg输出不是全的,有些输不出来
 楼主| 发表于 2011-4-21 18:33:02 | 显示全部楼层
我是用数组处理的,限制很大,期待更好的解决方法
发表于 2011-4-22 09:21:19 | 显示全部楼层
回复  骗子

兄弟你太浮躁了,我之前也被这个问题困扰了1天,msg输出不是全的,有些输不出来
lluxury 发表于 2011-4-21 18:03


就一个破空格就把你困扰了1天?
If $mon="百花谷 " then

另外可以试试

$oTd = _IETagNameGetCollection ($oIE, "td",0)
$str=_IEPropertyGet($oTd, "innertext")
 If StringInStr($str, "百花谷") then
         MsgBox(0,"","找到百花谷了")
        $oForm = _IEFormGetCollection ($oIE, 1)
        $oSelect = _IEFormElementGetObjByName ($oForm, "method")
        _IEFormElementOptionSelect ($oSelect,1,1, "byIndex")
EndIf


把游戏地址给发上来一起玩吧
 楼主| 发表于 2011-4-22 12:53:27 | 显示全部楼层
兄弟,真的不是空格的问题,你做的这个我做过了,有些特殊字符,MsgBox显示不出来,
举个例子,写字版上,段落符号,换号符号之类的也不显示,一个道理
我为什么用ConsoleWrite,就是发现了这个问题,
发表于 2011-4-22 15:14:42 | 显示全部楼层
虽然我很菜,但是我觉得
对于你1楼的内容问题就是在空格上,其实MsgBox已经显示出来空格了,只是因为跳出的窗口无法用鼠标选中,所以看上去和没显示空格是一样的,你看不到不代表没有,所以就要换个方法看看输出的到底是什么内容,就像你用ConsoleWrite
执行下面的几个命令看看结果
MsgBox(0,0,"1")
MsgBox(0,0,"1                                                             ")
MsgBox(0,0,"                                  1")
MsgBox(0,0,"              1       ")

========================================
这一行到底是只有这几个汉字呢?还是还有空格呢?                     
========================================
========================================
那这行到底是只有这几个汉字呢?还是还有空格呢?
========================================
 楼主| 发表于 2011-4-22 22:20:36 | 显示全部楼层
..呵呵,你不是笨,你是太顽固了,看我2楼抓的输出,不但有空格还有2问号
发表于 2011-4-23 10:35:13 | 显示全部楼层
我是菜,但不笨
虽然你2楼的那个输出我不懂什么意思
你试过我给你的代码没?
对于你1楼的问题就是那个空格的问题
也不知道是谁顽固
发表于 2011-4-23 11:02:21 | 显示全部楼层
本帖最后由 love5173 于 2011-4-23 11:04 编辑

回复 1# lluxury
不是正则的问题,跟网站的编码方式有关,编码不一样提取出来的就是乱码,其实也不是乱码,只是你的显示不出来而已
尝试一下BinaryToString
 楼主| 发表于 2011-4-23 11:35:40 | 显示全部楼层
本帖最后由 lluxury 于 2011-4-23 11:37 编辑

看了一下<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
发表于 2011-4-26 14:41:58 | 显示全部楼层
回复 1# lluxury


    看到楼主问了好多问题,能不能分享下做网页游戏挂的思路?
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-14 14:34 , Processed in 0.081651 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表