请教网页抓字符串的匹配问题,可能是bug,求高手
本帖最后由 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> 本帖最后由 lluxury 于 2011-4-21 18:14 编辑
网页抓出的值 :
位置:铁掌山 +>18:12:33 AutoIT3.exe 完成::0
截断,问题发生了
铁掌山 3??+>15:00:44 AutoIT3.exe 完成::0
求3??的去除方法 应该是 StringTrimLeft 函数处理中文的问题。不如msg一下看整个字符串是什么东西 $str="位置:百花谷"
$mon=StringTrimLeft ( $str,3 )
MsgBox(0, 0, $mon)
这部分的结果是 百花谷 没错
$oTd = _IETagNameGetCollection ($oIE, "td",0)
$str=_IEPropertyGet($oTd, "innertext")
MsgBox(0, 0, $str) ;加这么一句看看你获取的文字是不是 “位置:百花谷”
另外楼主把这个游戏的网址发出来吧,我也想一遍玩一遍学习的编辅助 回复 4# 骗子
兄弟你太浮躁了,我之前也被这个问题困扰了1天,msg输出不是全的,有些输不出来 我是用数组处理的,限制很大,期待更好的解决方法 回复骗子
兄弟你太浮躁了,我之前也被这个问题困扰了1天,msg输出不是全的,有些输不出来
lluxury 发表于 2011-4-21 18:03 http://www.autoitx.com/images/common/back.gif
就一个破空格就把你困扰了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
把游戏地址给发上来一起玩吧 兄弟,真的不是空格的问题,你做的这个我做过了,有些特殊字符,MsgBox显示不出来,
举个例子,写字版上,段落符号,换号符号之类的也不显示,一个道理
我为什么用ConsoleWrite,就是发现了这个问题, 虽然我很菜,但是我觉得
对于你1楼的内容问题就是在空格上,其实MsgBox已经显示出来空格了,只是因为跳出的窗口无法用鼠标选中,所以看上去和没显示空格是一样的,你看不到不代表没有,所以就要换个方法看看输出的到底是什么内容,就像你用ConsoleWrite
执行下面的几个命令看看结果
MsgBox(0,0,"1")
MsgBox(0,0,"1 ")
MsgBox(0,0," 1")
MsgBox(0,0," 1 ")
========================================
这一行到底是只有这几个汉字呢?还是还有空格呢?
========================================
========================================
那这行到底是只有这几个汉字呢?还是还有空格呢?
======================================== ..呵呵,你不是笨,你是太顽固了,看我2楼抓的输出,不但有空格还有2问号 我是菜,但不笨
虽然你2楼的那个输出我不懂什么意思
你试过我给你的代码没?
对于你1楼的问题就是那个空格的问题
也不知道是谁顽固 本帖最后由 love5173 于 2011-4-23 11:04 编辑
回复 1# lluxury
不是正则的问题,跟网站的编码方式有关,编码不一样提取出来的就是乱码,其实也不是乱码,只是你的显示不出来而已
尝试一下BinaryToString 本帖最后由 lluxury 于 2011-4-23 11:37 编辑
看了一下<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 回复 1# lluxury
看到楼主问了好多问题,能不能分享下做网页游戏挂的思路?
页:
[1]
2