找回密码
 加入
搜索
查看: 1744|回复: 14

这是AU3正则BUG吗?

[复制链接]
发表于 2009-9-22 19:33:44 | 显示全部楼层 |阅读模式
本帖最后由 itljl 于 2009-9-24 12:17 编辑
#Include <Array.au3>
#include <INet.au3>

$downurl = "http://xl.dygod.com/html/tv/oumeitv/20090617/19649.html"
_movieDownURL($downurl)

Func _movieDownURL($downurl);分析出下载连接
        $Str_s = 'href="'
        $Str_e = '">ftp'
        local $sReturn
        
        $oIE = _INetGetSource($downurl)


        $sReturn = StringRegExp($oIE, $Str_s & '(.*)' & $Str_e, 3)
        _ArrayDisplay($sReturn)

Endfunc   ;==>_movieDownURL
大家看提出来的地址中,第五个,有乱码,而实际获得的源码中,是没有乱码的.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2009-9-22 21:40:19 | 显示全部楼层
我也想知道,不过这种问题的帖子好像见过了,忘了叫什么了,也是乱码。。。。郁闷
发表于 2009-9-22 21:55:44 | 显示全部楼层
stringmid
stringinstr
配合不是一样HAPPY么?为什么都要用正则呢?
发表于 2009-9-22 22:01:37 | 显示全部楼层
正则较准确,而且有安全感,汗~
发表于 2009-9-22 23:56:04 | 显示全部楼层
感觉好像还是源码有问题,难道AU3正则会有这样BUG么?做个标记
发表于 2009-9-23 11:11:34 | 显示全部楼层
你保存成文件,再从文件中读取,打开文件的时候用UTF8 方式 实验看看
发表于 2009-9-23 11:33:06 | 显示全部楼层
学习中,不要打扰我
 楼主| 发表于 2009-9-24 10:47:44 | 显示全部楼层
6# philips

你好,按照你说的方法,错的更厉害了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2009-9-24 10:51:55 | 显示全部楼层
是错得太离谱了
发表于 2009-9-24 11:27:06 | 显示全部楼层
AU3的正则对中文的支持不是很好
发表于 2009-9-24 11:43:19 | 显示全部楼层
正则没有错,获取源码时就是乱码字符串了
发表于 2009-9-24 12:04:46 | 显示全部楼层
同意11楼说法

你自己用 MsgBox(0,"", $oIE) 看看就知道问题原因了

建议用 InetGet("http://xl.dygod.com/html/tv/oumeitv/20090617/19649.html", "D:\test.txt")
然后在用正则处理文本
 楼主| 发表于 2009-9-24 12:17:08 | 显示全部楼层
谢谢各位,先检查了网页源码,没看仔细,原来错在这一步,不是错在正则.谢谢各位.
发表于 2009-9-24 12:24:41 | 显示全部楼层
如果不使用临时文件,可以这样(不使用_INetGetSource函数)
#include <Array.au3>

$downurl = "http://xl.dygod.com/html/tv/oumeitv/20090617/19649.html"
_movieDownURL($downurl)

Func _movieDownURL($downurl);分析出下载连接
        Local $sReturn, $Str_s = 'href="', $Str_e = '">ftp'
        $oIE = _XmlHttp($downurl)
        $sReturn = StringRegExp($oIE, $Str_s & '(.*)' & $Str_e, 3)
        ;_ArrayDisplay($sReturn)
        MsgBox(0, 0, _ArrayToString($sReturn, @CRLF))
EndFunc   ;==>_movieDownURL

Func _XmlHttp($Url) ;作者:Sanhen
        Local $oHTTP, $sReturn
        $oHTTP = ObjCreate("microsoft.xmlhttp")
        $oHTTP.Open("get", $Url, False)
        $oHTTP.Send()
        $sReturn = BinaryToString($oHTTP.responseBody)
        Return $sReturn
EndFunc   ;==>_XmlHttp
 楼主| 发表于 2009-9-24 12:28:07 | 显示全部楼层
14# afan


谢谢这位兄弟.
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-5 01:05 , Processed in 0.078540 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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