找回密码
 加入
搜索
查看: 3697|回复: 7

[IE类操作] [网页提取]如何提取网页信息到数组

  [复制链接]
发表于 2013-1-23 19:42:23 | 显示全部楼层 |阅读模式
如下,获取的网页源代码如下,请问用什么方法把信息提取到数组,以备使用?
<option value="">请选择</option><option value="001">中国</option><option value="002">台港</option><option value="004">黑人</option><option value="005">白人</option>
 楼主| 发表于 2013-1-23 19:43:20 | 显示全部楼层
提取到二维数组
001 中国
002 台港
。。。。
发表于 2013-1-23 20:56:35 | 显示全部楼层
如果确实要二维的话 再重新赋一次值吧 不过用 $array[$i]和$array[$i+1]也一样很方便嘛
#include <array.au3>
Local $array=StringRegExp(ClipGet(),'value="(\d+)">([^<]+)',3)
_ArrayDisplay($array)
发表于 2013-1-23 21:03:12 | 显示全部楼层
二维数组,是不是要用两次正则,有请A版讲解。
#include<array.au3>
Dim $n1, $n2
Dim $String = '<option value="">请选择</option><option value="001">中国</option><option value="002">台港</option><option value="004">黑人</option><option value="005">白人</option>'
$n1 = StringRegExp($String, '\d+', 3)
$n2 = StringRegExp($String, '\d+">([^<]+)', 3)
If IsArray($n1) And IsArray($n2) Then
        Dim $n[UBound($n1)][2]
        For $i = 0 To UBound($n1) - 1
                $n[$i][0] = $n1[$i]
                $n[$i][1] = $n2[$i]
        Next
EndIf
_ArrayDisplay($n)
 楼主| 发表于 2013-1-23 21:19:08 | 显示全部楼层
思路,先获取一维数组,然后一维数组读入二维数组
 楼主| 发表于 2013-1-23 21:31:31 | 显示全部楼层
经过测试如下可以:

#include <Array.au3>
Local $Str = FileRead('test.txt')
MsgBox(0,"",$Str)
Local $aSR = StringRegExp($str, '<(?i)option value="(.*?)">(.*?)</(?i)option>', 3)
Local $zlhy[UBound($aSR) / 2][2]   
   For $i = 0 To UBound($aSR)-1 Step 2
        $zlhy[($i+2)/2-1][0] = $aSR[$i]
        $zlhy[($i+2)/2-1][1] = $aSR[$i + 1]
   Next   
_ArrayDisplay($zlhy, '')
发表于 2013-1-24 00:32:52 | 显示全部楼层
回复 4# haijie1223


    正则的结果只能有一维,像3#所说,只能再赋值一个新数组。或者直接使用i+1的下标。或者如你所用的两次正则建立两个数组,可以以下标号成对使用。

评分

参与人数 1金钱 +20 收起 理由
haijie1223 + 20 多谢A版解答

查看全部评分

发表于 2013-1-26 13:53:24 | 显示全部楼层
正则之后再赋值。很好的思路
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-15 17:24 , Processed in 0.085807 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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