找回密码
 加入
搜索
查看: 4540|回复: 9

[AU3基础] [已解决]求获取某个网页部分内容的正则表达式。

  [复制链接]
发表于 2010-11-24 11:03:22 | 显示全部楼层 |阅读模式
本帖最后由 netsmu 于 2010-11-25 09:07 编辑

网页是 :http://lrc.aspxp.net/?k=%BA%C9%CC%C1&st=ti

第一个要获取的内容是  三首 荷塘 歌名,例如(荷塘月色,荷塘 月色,荷塘月色),如果能把歌手( 歌手:凤凰传奇)获取出来就更完美啦。

第二个是要获取LRC的下载地址,例如(http://lrc.aspxp.net/lrc.asp?id= ... amp;t=lrc&ac=dl

非常感谢各位坛友的帮助。

评分

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

查看全部评分

 楼主| 发表于 2010-11-24 16:20:15 | 显示全部楼层
贴上部分网页源码如下:
<div class="lrclist">
                        <div id="ti">
                                <strong><a class="fred">12</a>.歌曲:<a href="./?f=1&ti=%BA%C9%CC%C1+%D4%C2%C9%AB"><span class="red">荷塘</span> 月色</a></strong></div>
                        <div id="ar">
                                <strong>&nbsp;&nbsp;歌手:<a href="./?f=1&ar=%B7%EF%BB%CB%B4%AB%C6%E6">凤凰传奇</a></strong></div>
                        <div id="al">
                                <strong>&nbsp;&nbsp;专辑:</strong></div>
                        <div id="show">
                                <strong>&nbsp;&nbsp;显示:</strong>
                                <a href="lrc.asp?id=358360&id1=143&t=txt" target="_blank">TXT格式</a><img src="images/txt.gif">
                                <a href="lrc.asp?id=358360&id1=143&t=lrc" target="_blank">LRC格式</a><img src="images/lrc.gif">
                                <a href="lrc.asp?id=358360&id1=143&t=xml" target="_blank">XML格式<img src="images/xml.gif"></a>
                        </div>
                        <div id="down">
                                <strong>&nbsp;&nbsp;下载:</strong>
                                <a href="lrc.asp?id=358360&id1=143&t=txt&ac=dl" target="_blank">TXT格式<img src="images/txt.gif"></a>
                                <a href="lrc.asp?id=358360&id1=143&t=lrc&ac=dl" target="_blank">LRC格式<img src="images/lrc.gif"></a>
                                <a href="lrc.asp?id=358360&id1=143&t=smi&ac=dl" target="_blank">SMI格式<img src="images/smi.gif"></a>
                        </div>
                        <div id="song">

最好是可以获取
1、歌曲:
2、 歌手:
3、还有下载地址2 LRC格式。
发表于 2010-11-24 18:23:27 | 显示全部楼层
本帖最后由 shano 于 2010-11-24 18:36 编辑

我是菜鸟 代码  很乱
#include<array.au3>
#include<ie.au3>

 Dim $HTMLSource
 
 
 
 _get('http://lrc.aspxp.net/?k=%BA%C9%CC%C1&st=ti')
 ;FileWrite('c:\1.txt',$HTMLSource)  
 
$sR = StringRegExp($HTMLSource, '="red">(.+?)</', 3)        
$song1=$sR[1]

 $sR = StringRegExp($HTMLSource, '</span>(.+?)</a>', 3)        
$song2=$sR[1]
 
 MsgBox(0,"歌名",$song1&" "&$song2)
 
  $sR = StringRegExp($HTMLSource, '歌手:.+?>(.+?)</a>', 3)        
$songer=$sR[1]
  
  MsgBox(0,"歌手",$songer)
 

  $sR = StringRegExp($HTMLSource, 'a href="lrc.asp(.+?)" target="_blank">LRC格式', 3)        


  
  $LRC=$sR[1]
  MsgBox(0,"LRC格式下载地址",'www.***.com/lrc.asp'&$LRC)
 
 
        
        
Func _get($url)
 
  
        $httpObj = ObjCreate("winhttp.winhttprequest.5.1")
        $httpObj.open("GET", $url)
        $httpObj.Send()
        $HTMLSource = BinaryToString(($httpObj.responseBody) ,1 )
 
EndFunc

评分

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

查看全部评分

发表于 2010-11-24 22:35:52 | 显示全部楼层
两次正则即可:
1,替换掉可能有的颜色高亮标签,使之后的匹配不用再判断处理
StringRegExpReplace('源码字符', '</span>', '')
2,一次匹配所有的歌名、歌手、下载地址
StringRegExp('上次处理后的源码', '(?s)id="ti".+?([^><]+)</a><.+?id="ar".+?([^><]+)</a><.+?id="down".+?href="([^"]+)[^>]+>LRC', 3)

本帖子中包含更多资源

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

×
 楼主| 发表于 2010-11-25 09:05:38 | 显示全部楼层
afan 我太爱你了。
发表于 2010-11-25 09:38:12 | 显示全部楼层
学习了,谢谢
 楼主| 发表于 2010-11-25 09:38:48 | 显示全部楼层
本帖最后由 netsmu 于 2010-11-25 09:39 编辑

仔细研究了一下3楼的方法,简单容易,看起来易懂,适合初学者,但是我决定还是向高级者进军,努力学号4楼的正则。哈哈。
发表于 2010-12-3 13:53:12 | 显示全部楼层
阿芳,你太靓了,崇拜的你正则
发表于 2010-12-3 15:20:05 | 显示全部楼层
阿芳,你太靓了,崇拜的你正则
leon460 发表于 2010-12-3 13:53



    纯爷们是也~
发表于 2010-12-3 15:51:35 | 显示全部楼层
学习一下。。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-9-20 23:31 , Processed in 0.087300 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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