Autohotkey 循环遍历元素并获取属性值
我有一个包含以下URL的csv(List.csv)文件:Autohotkey 循环遍历元素并获取属性值,autohotkey,Autohotkey,我有一个包含以下URL的csv(List.csv)文件: http://www.indeed.com/resumes?q=banking&l=london&co=GB&start=0 http://www.indeed.com/resumes?q=banking&l=london&co=GB&start=50 http://www.indeed.com/resumes?q=banking&l=london&co=GB&sta
http://www.indeed.com/resumes?q=banking&l=london&co=GB&start=0
http://www.indeed.com/resumes?q=banking&l=london&co=GB&start=50
http://www.indeed.com/resumes?q=banking&l=london&co=GB&start=100
我将此信息传递到我的AHK代码中,并尝试获取属性onclick的值,然后将其添加到csv文件中。例如,在下面的代码块中,它将是window.open('/r/Angela Wallington/1872b08acbe9d892?sp=0','_blank')
我做错了什么?要在示例文本中找到
OnClick
值,可以执行以下操作:
Regex := "i)<div\s(?=(?:[^>=]|=(?:'[^']*'|""[^""]*""|[^'""][^\s>]*))*?\sonclick=[""]([^""]*""))(?:[^>=]|=(?:'[^']*'|""[^""]*""|[^'""\s]*))*\s?\/?>"
InputString := ""
InputString .= "<div class=""clickable_resume_card"" onclick=""window.open(''/r/Angela-Wallington/1872b08acbe9d892?sp=0'', ''_blank'')"" target=""_blank"" style=""cursor: pointer;"">"
InputString .= "<div class=""app_name""><a target=""_blank"" data-tn-element=""resume-result-link[]"" data-tn-link="""" rel=""nofollow"" class=""app_link"" itemprop=""url"">Angela Wallington</a><span class=""location""> - Dartford</span></div>"
InputString .= "<div class=""experience"">Controls Analyst, Everyday Banking Customer Services, Operations<span class=""company""> - Royal Bank of ...</span></div>"
InputString .= "<div class=""experience"">Internal Controls Manager, Retail Processing Operations</div>"
InputString .= "<div class=""experience"">Team Manager Chatham Account Management Centre</div>"
InputString .= "<div class=""times"">"
InputString .= "<form action=""/resumes/rpc/resume/save"" method=""post"" style=""display:inline"" id=""saveResumeForm-1872b08acbe9d892"">"
InputString .= "<input type=""hidden"" name=""indeedcsrftoken"" value=""t0U3JHF5msLu4nhlI9Tq81HhIAhVCiNG"">"
InputString .= "<input type=""hidden"" name=""rez"" value=""1872b08acbe9d892"">"
InputString .= "</form><span class=""container""><a rel=""nofollow"" id=""saveRezAnon-1872b08acbe9d892"" data-rez=""1872b08acbe9d892"" class=""sl link savelink anon"" data-tn-element=""serp-result-save-link"" data-tn-link=""redirect"" href=""/resumes/account/register?dest=%2Fresumes%3Fq%3Dbanking%26l%3Dlondon%26co%3DGB%26start%3D50"">save CV</a></span> - <span class=""last_updated"">Updated: 4-Jun</span></div>"
InputString .= "</div>"
RegexMatch(InputString, Regex, OnClickValue)
strMessage .= "`n`nOnClickValue = '" . OnClickValue1 . "'"
MsgBox, % strMessage
您是否收到任何错误消息?如果你浏览这些论坛,你会看到很多q's re-AHK的
getElementsByClassName
实现,因为对于很多人来说,它的效果并不理想。在这种情况下,您可以查询div标记,并使用.InnerHTML
在每个标记中搜索类名,以获得所需的元素。然后尝试元素[A_Index-1]。单击(参见此方法的示例)。HTH.如果我传入一个URL而不是一个字符串,这会起作用吗?这个表达式只解析给定的文本块,查找具有onclick
属性的div
标记。
fileread, siteList, List.csv
loop, parse, siteList, `n, `r
{
Sleep, 2000
Url = %A_LoopField%
Pwb := ComObjCreate( "InternetExplorer.Application" )
Pwb.Navigate(Url)
Pwb.Visible := True
While ( Pwb.Busy || Pwb.ReadyState != 4 )
Sleep 10
CV_Elements := IE.document.getElementsByClassName("clickable_resume_card")
Loop, % CV_Elements.length
{
CV_Url := Elements[A_Index-1].onclick
}
}
Regex := "i)<div\s(?=(?:[^>=]|=(?:'[^']*'|""[^""]*""|[^'""][^\s>]*))*?\sonclick=[""]([^""]*""))(?:[^>=]|=(?:'[^']*'|""[^""]*""|[^'""\s]*))*\s?\/?>"
InputString := ""
InputString .= "<div class=""clickable_resume_card"" onclick=""window.open(''/r/Angela-Wallington/1872b08acbe9d892?sp=0'', ''_blank'')"" target=""_blank"" style=""cursor: pointer;"">"
InputString .= "<div class=""app_name""><a target=""_blank"" data-tn-element=""resume-result-link[]"" data-tn-link="""" rel=""nofollow"" class=""app_link"" itemprop=""url"">Angela Wallington</a><span class=""location""> - Dartford</span></div>"
InputString .= "<div class=""experience"">Controls Analyst, Everyday Banking Customer Services, Operations<span class=""company""> - Royal Bank of ...</span></div>"
InputString .= "<div class=""experience"">Internal Controls Manager, Retail Processing Operations</div>"
InputString .= "<div class=""experience"">Team Manager Chatham Account Management Centre</div>"
InputString .= "<div class=""times"">"
InputString .= "<form action=""/resumes/rpc/resume/save"" method=""post"" style=""display:inline"" id=""saveResumeForm-1872b08acbe9d892"">"
InputString .= "<input type=""hidden"" name=""indeedcsrftoken"" value=""t0U3JHF5msLu4nhlI9Tq81HhIAhVCiNG"">"
InputString .= "<input type=""hidden"" name=""rez"" value=""1872b08acbe9d892"">"
InputString .= "</form><span class=""container""><a rel=""nofollow"" id=""saveRezAnon-1872b08acbe9d892"" data-rez=""1872b08acbe9d892"" class=""sl link savelink anon"" data-tn-element=""serp-result-save-link"" data-tn-link=""redirect"" href=""/resumes/account/register?dest=%2Fresumes%3Fq%3Dbanking%26l%3Dlondon%26co%3DGB%26start%3D50"">save CV</a></span> - <span class=""last_updated"">Updated: 4-Jun</span></div>"
InputString .= "</div>"
RegexMatch(InputString, Regex, OnClickValue)
strMessage .= "`n`nOnClickValue = '" . OnClickValue1 . "'"
MsgBox, % strMessage
OnClickValue = 'window.open(''/r/Angela-Wallington/1872b08acbe9d892?sp=0'', ''_blank'')"'