如何获取网页内链接?
#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, $x = 0
For $i = 0 To UBound($sR) - 1 Step 2
$link[$x] = $sR[$i + 1]
$link[$x] = 'http://www.excelpx.com/' & $sR[$i]
$x += 1
Next
_ArrayDisplay($link, '标题及链接')主要是正则不太会用,哪位高手指点一下啊?谢了。 本帖最后由 shqf 于 2012-6-5 12:07 编辑
class后面不是标题吧。标题应该在<a></a>之间。网页中的 href有各种类别、各种样式,你看清楚了吗?你要哪类,没说清楚。且有的链接本就带有“http://www.excelpx.com/”,有的链接没带。问题补充得细一点吧。那样才会有人来帮你呵!
补充:楼主是否要想获取各个贴子的标题及链接吗? 本帖最后由 acbs 于 2012-6-5 14:55 编辑
class后面不是标题吧。标题应该在之间。网页中的 href有各种类别、各种样式,你看清楚了吗?你要哪类,没说 ...
shqf 发表于 2012-6-5 11:58 http://www.autoitx.com/images/common/back.gif
是的,我想要的就是各个贴子的链接。
那个代码由于网站类型不同,所以拿到新的网站不行了,请大家指点,谢谢。 你细看一下网页源码,你会发现唯帖子的链接语句中含有“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, $x = 0
For $i = 0 To UBound($sR) - 1 Step 2
$link[$x] = $sR[$i + 1]
$link[$x] = $sR[$i]
$x += 1
Next
_ArrayDisplay($link, '标题及链接') 顶楼上的。会正则的真牛
页:
[1]