找回密码
 加入
搜索
查看: 4686|回复: 10

[IE类操作] [已解决]获取帖子的名称和连接

  [复制链接]
发表于 2010-11-26 15:04:13 | 显示全部楼层 |阅读模式
本帖最后由 laomao127 于 2010-12-1 23:40 编辑



如图:获取 “如何获得网页中获得焦点元素的超链接? ”这个帖子的题目和连接 还有 点击和回复
在论坛上搜了一下 但是获取不成功,请高手帮忙。谢谢

答案:五、六、八 楼

本帖子中包含更多资源

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

×

评分

参与人数 1金钱 +10 收起 理由
afan + 10 感谢主动将修改帖子分类为[已解决],请继续 ...

查看全部评分

 楼主| 发表于 2010-11-26 16:13:57 | 显示全部楼层
斑竹高手不在吗?
发表于 2010-11-26 16:33:37 | 显示全部楼层
分析源码,正则获取
 楼主| 发表于 2010-11-26 16:55:03 | 显示全部楼层
回复 3# afan

我在论坛上也看过差不多相关的 网页分析的代码,但是总修改不成功,能帮忙写一下吗?简单点也可以 只要功能能实现就可以  实现一个 其他的我比葫芦花瓢 可以吗?主要是一个都实现不了 ,麻烦斑竹了。
发表于 2010-11-26 17:27:50 | 显示全部楼层
代码中不完美的地方就是 $out[1][8] 想写成一行 一直出错 不知怎么整合 谁来帮下
#include <INet.au3>
#include <Array.au3>
$source = _INetGetSource("http://www.autoitx.com/forum-4-1.html")
$sr = StringRegExp($source, '(?s)">([^<]*)</a>].+?href="([^"]*).+?([^><\v]*)</a>.+?<cite>.+?html">([^<]*)</a>.+?<em>([^<]*).+?<strong>([^<]*).+?<em>([^<]*).+?>([^<]*)</a></cite>', 3)
Local $out[Int(UBound($sr) / 8) + 1][8]
$out[0][0] = "帖子类型:"
$out[0][1] = "帖子问题:"
$out[0][2] = "提问者:"
$out[0][3] = "最后回答者:"
$out[0][4] = "回复数:"
$out[0][5] = "查看数:"
$out[0][6] = "发表时间:"
$out[0][7] = "帖子地址:"
For $i = 0 To UBound($sr) - 1 Step 8
        $out[Int($i / 8) + 1][0] = $sr[$i]
        $out[Int($i / 8) + 1][1] = $sr[$i + 2]
        $out[Int($i / 8) + 1][2] = $sr[$i + 3]
        $out[Int($i / 8) + 1][3] = $sr[$i + 7]
        $out[Int($i / 8) + 1][4] = $sr[$i + 5]
        $out[Int($i / 8) + 1][5] = $sr[$i + 6]
        $out[Int($i / 8) + 1][6] = $sr[$i + 4]
        $out[Int($i / 8) + 1][7] = "http://www.autoitx.com/" & $sr[$i + 1]
Next
_ArrayDisplay($out)

评分

参与人数 1金钱 +20 收起 理由
afan + 20

查看全部评分

发表于 2010-11-26 17:43:47 | 显示全部楼层
楼上可以借助这个UDF实现2维数组。
Func _ArrayAdd2(ByRef $array1,$array2);_ReArrayAdd(目标数组,增加内容)
        If IsArray($array2) Then 
                If UBound($Array2, 0) <> 1 Then Return SetError(2, 0, -1);增加内容不是一个一维数组
        Else
                Return SetError(1, 0, -1);返回错误代码1,增加的内容非数组
        EndIf
        If Not IsArray($array1) Then Return SetError(3, 0, -1);返回错误代码3,目标数组非数组
        $One_Dimen=UBound($array2);取一维数组数量
        $Many_Dimen=UBound($array1,0);取二维数组维数
        Local $Many_Dimen_Line=UBound($array1,1);取二维数组行数
        $Many_Dimen_Col=UBound($array1,2);取二维数组列数
        If $Many_Dimen<>2 Then Return SetError(4,0,-1);返回错误代码4,目标数组非二维数组
        If $One_Dimen<$Many_Dimen_Col Or $One_Dimen>$Many_Dimen_Col Then
                ReDim $array2[$Many_Dimen_Col]
        EndIf
        ReDim $array1[$Many_Dimen_Line+1][$Many_Dimen_Col]
        For $add_i=0 To $Many_Dimen_Col-1
        $array1[$Many_Dimen_Line][$add_i]=$array2[$add_i]                
        Next
        Return $Many_Dimen_Line
        
EndFunc

评分

参与人数 1金钱 +20 收起 理由
afan + 20

查看全部评分

发表于 2010-11-26 21:23:23 | 显示全部楼层
不要拿咱们论坛做实验吧,现在访问已经够慢了~
发表于 2010-11-26 21:26:43 | 显示全部楼层
以前写的例子,不记得哪个帖子了
#include <INet.au3>
#include <Array.au3>

$sUrl = 'http://www.excelpx.com/index.asp?boardid=38'
Tooltip('正在获取源码,请稍候……')
$str = _INetGetSource($sUrl) 
$str = StringRegExpReplace($str, 'amp;|"', '')
$sR = StringRegExp($str, '<a href="(.+?)".+title="《(.+)》', 3)
If @error Then Exit MsgBox(0, 0, '未找到匹配~')
Dim $link[UBound($sR) / 2][2], $x = 0
For $i = 0 To UBound($sR) - 1 Step 2
        $link[$x][0] = $sR[$i + 1]
        $link[$x][1] = 'http://www.excelpx.com/' & $sR[$i]
        $x += 1
Next
Tooltip('')
_ArrayDisplay($link, '标题及链接')
 楼主| 发表于 2010-12-1 14:17:39 | 显示全部楼层
#include <INet.au3>
#include <Array.au3>

$sUrl = 'http://www.excelpx.com/index.asp?boardid=38'
Tooltip('正在获取源码,请稍候……')
$str = _INetGetSource($sUrl) 
$str = StringRegExpReplace($str, 'amp;|"', '')
$sR = StringRegExp($str, '<a href="(.+?)".+title="《(.+)》', 3)
If @error Then Exit MsgBox(0, 0, '未找到匹配~')
Dim $link[UBound($sR) / 2][2], $x = 0
For $i = 0 To UBound($sR) - 1 Step 2
        $link[$x][0] = $sR[$i + 1]
        $link[$x][1] = 'http://www.excelpx.com/' & $sR[$i]
        $x += 1
Next
Tooltip('')
_ArrayDisplay($link, '标题及链接')
发表于 2010-12-1 14:20:34 | 显示全部楼层
“已经解决”改为“已解决”
发表于 2010-12-1 14:25:08 | 显示全部楼层
不要拿咱们论坛做实验吧,现在访问已经够慢了~
afan 发表于 2010-11-26 21:23



    这句话很有喜感~~
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-23 00:00 , Processed in 0.084958 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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