帮写一个正则
本帖最后由 sex123 于 2014-4-27 02:06 编辑http://www.ncbi.nlm.nih.gov/pubmed/24755572
http://www.ncbi.nlm.nih.gov/pubmed/24406157
http://www.ncbi.nlm.nih.gov/pubmed/24753396
这些网址右上角均有一个图标,网页源代码都有icon for的字样,想把这些图标所对应的url提出来。最好是根据icon for写正则表达式,以前也求过一次,但是正则失效了。 好久没来论坛了,懒得写~好懒 不知道是不是你要的结果 (?<=icon" href="//)[^"]+ 不知道是不是你要的结果
水木子 发表于 2014-4-27 09:29 http://www.autoitx.com/images/common/back.gif
运行没反应,另外,是icon for 不是iconLocal $html=BinaryToString(InetRead("http://www.ncbi.nlm.nih.gov/pubmed/24755572"))
Local $strrg=StringRegExp($html,'(=icon href=)[^]+', 3)
If Not @error Then MsgBox(0, '', $strrg) 回复 1# sex123 #include <IE.au3>
Local $oIE
$oIE = "http://www.ncbi.nlm.nih.gov/pubmed/24755572"
$oIE = "http://www.ncbi.nlm.nih.gov/pubmed/24406157"
$oIE = "http://www.ncbi.nlm.nih.gov/pubmed/24753396"
If Not FileExists(@ScriptDir & "\_geticonfor") Then _
DirCreate(@ScriptDir & "\_geticonfor")
For $i = 0 To 2
_geticonfor($oIE[$i])
Next
ShellExecute(@ScriptDir & "\_geticonfor")
Func _geticonfor($url)
Local $obj = _IECreate($url, 0, 0)
Local $Str = _IEBodyReadHTML($obj)
_IEQuit($obj)
If Not @error Then
Local $Test = StringRegExp($Str, '(?si)alt="icon for.*?src="([^"]+)"', 1)
;~ MsgBox(0, $i, "http:" & $Test)
InetGet("http:" & $Test, @ScriptDir & "\_geticonfor\" & StringRegExpReplace($Test, ".*?http:--(.+)", "\1"))
EndIf
EndFunc ;==>_geticonfor
回复sex123
lixiaolong 发表于 2014-4-27 10:27 http://www.autoitx.com/images/common/back.gif
晕,我不是要图片,我要的是图片所代表的链接地址,就是说点击图片所转到的http地址链接。 本帖最后由 lixiaolong 于 2014-4-27 11:06 编辑
回复 6# sex123
{:face (394):}
试试
StringRegExp($Str, '(?i)<a href="([^"]+)".*?(?=alt="icon for)', 1) 本帖最后由 水木子 于 2014-4-27 11:15 编辑
回复 6# sex123
提问就有问题,根本没说出自己要的结果,让我们猜啊!哎! 真心难!
举例说明自己想要得到的结果。 回复sex123
提问就有问题,根本没说出自己要的结果,让我们猜啊!哎! 真心难!
举例说明自己想要 ...
水木子 发表于 2014-4-27 11:13 http://www.autoitx.com/images/common/back.gif
不好意思呀,我说的不是太清楚,我举列子吧。
比如:
http://www.ncbi.nlm.nih.gov/pubmed/24755572
这个网页右上角有一个图标
左键点击这个图标,选复制链接地址后,得到的
dx.plos.org/10.1371/journal.pone.0094898
就是我想要的,当然最好是前有加上一个http://就最好了。 回复 9# sex123
(?<=icons"><a href=")[^"]+ 回复sex123
水木子 发表于 2014-4-27 12:30 http://www.autoitx.com/images/common/back.gif
按你写的,没反应。Local $html=BinaryToString(InetRead("http://www.ncbi.nlm.nih.gov/pubmed/24755572"),1)
Local $strrg=StringRegExp($html,'(?<=icons"><a href=")[^"]+', 3)
If Not @error Then MsgBox(0, '', $strrg)
你这个需要转码吗?貌似不需要吧! 你这个需要转码吗?貌似不需要吧!
水木子 发表于 2014-4-27 15:30 http://www.autoitx.com/images/common/back.gif
不知道需不需要转码,什么情况下转码,什么情况下不转吗呢,反正现在没有弹出条。 你这个需要转码吗?貌似不需要吧!
水木子 发表于 2014-4-27 15:30 http://www.autoitx.com/images/common/back.gif
不转码,也没反应。Local $html=inetRead("http://www.ncbi.nlm.nih.gov/pubmed/24755572",1)
Local $strrg=StringRegExp($html,'(?<=icons"><a href=")[^"]+', 3)
If Not @error Then MsgBox(0, '', $strrg)
本帖最后由 水木子 于 2014-4-27 16:35 编辑
有点迷茫,不知道是不是你要的。
Local $html = BinaryToString(InetRead("http://www.ncbi.nlm.nih.gov/pubmed/24755572"), 1)
Local $strrg=StringRegExp($html,'icon-triangle.+?href="([^"]+)', 3)
If Not @error Then MsgBox(0, 0, $strrg)
页:
[1]
2