找回密码
 加入
搜索
查看: 2691|回复: 4

[AU3基础] 如何获取网页内链接?

[复制链接]
发表于 2012-6-5 11:09:17 | 显示全部楼层 |阅读模式
#include <INet.au3>
#include <Array.au3>

$sUrl = 'http://www.excelpx.com/forum-5-1.html'
ToolTip('正在获取源码,请稍候……')
$str = _INetGetSource($sUrl)
$str = StringRegExpReplace($str, 'onclick=', '')
$sR = StringRegExp($str, '<a href="(.+?)".+class="《(.+)》', 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
_ArrayDisplay($link, '标题及链接')
主要是正则不太会用,哪位高手指点一下啊?谢了。
发表于 2012-6-5 11:58:48 | 显示全部楼层
本帖最后由 shqf 于 2012-6-5 12:07 编辑

class后面不是标题吧。标题应该在<a></a>之间。网页中的 href有各种类别、各种样式,你看清楚了吗?你要哪类,没说清楚。且有的链接本就带有“http://www.excelpx.com/”,有的链接没带。问题补充得细一点吧。那样才会有人来帮你呵!
补充:楼主是否要想获取各个贴子的标题及链接吗?
 楼主| 发表于 2012-6-5 14:54:50 | 显示全部楼层
本帖最后由 acbs 于 2012-6-5 14:55 编辑
class后面不是标题吧。标题应该在之间。网页中的 href有各种类别、各种样式,你看清楚了吗?你要哪类,没说 ...
shqf 发表于 2012-6-5 11:58

是的,我想要的就是各个贴子的链接。

那个代码由于网站类型不同,所以拿到新的网站不行了,请大家指点,谢谢。
发表于 2012-6-5 15:07:46 | 显示全部楼层
你细看一下网页源码,你会发现唯帖子的链接语句中含有“atarget”字样,据此可写正则表达式了。
#include <INet.au3>
#include <Array.au3>
$sUrl = 'http://www.excelpx.com/forum-5-1.html'
ToolTip('正在获取源码,请稍候……')
$str = _INetGetSource($sUrl)
$sR = StringRegExp($str, '<a href="(.+?)".*"atarget.+?>(.+?)</a>', 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] = $sR[$i]
        $x += 1
Next
_ArrayDisplay($link, '标题及链接')
发表于 2012-6-5 15:29:07 | 显示全部楼层
顶楼上的。会正则的真牛
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-4 06:37 , Processed in 0.073482 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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