为什么提取链接数量少了一半?
例子在下面,用与正则表达式从网页中提取一些链接的标题实际上正则表达式对应30条记录,但却只能有15条
不明白为什么,请教
谢谢!
#include <INet.au3>
$oIE=_INetGetSource("http://www.verycd.com/groups/SandBox/")
$sReturns=StringRegExp($oIE,'<a href="/groups/SandBox/\d*\.topic">(.+?)</a>',3)
for $i = 0 to UBound($sReturns) - 1
$buffer = StringToBinary($sReturns[$i])
$buffer = BinaryToString($buffer,4)
ConsoleWrite($i & "....." & $buffer & @CR)
Next
;
;
;$i = 0
;For $sReturn In $sReturns
; $i = $i + 1
; $buffer = StringToBinary($sReturn)
; $buffer = BinaryToString($buffer,4)
; ConsoleWrite($i & "....." & $buffer & @CRLF)
;Next
我发现现在问题有两个了:
1、只能取到一半的链接文本
2、链接文本都好像取不全,会把后面的文字截掉了
问题出在哪里?:face (32):
[ 本帖最后由 老榆头 于 2009-2-11 21:12 编辑 ] 自己顶一下 #include <IE.au3>
$oIE = _IECreate ("http://www.verycd.com/groups/SandBox/")
$txt = _IEDocReadHTML($oIE)
_Get($txt)
Func _get($txt);循环获取链接
$Url = ""
$nOffset = ""
While 1
$array = StringRegExp($txt,'<A href="/groups/SandBox/(.*?).topic">', 1,$nOffset)
If @error = 0 Then
$nOffset = @extended
Else
ExitLoop
EndIf
for $i = 0 to UBound($array) - 1
$Url=$array[$i]
FileWrite("log.txt",$Url&@CRLF)
Next
WEnd
EndFunc 谢谢楼上朋友的回复
这种方法的确可以获得正确的链接(链接的ID)
但我想知道
我那种方法问题出在哪里
谢谢! 问题已经解决,麻烦版主移动此帖到已解决区,谢谢
页:
[1]