循环遍历元素并获取属性值

时间:2016-07-01 14:48:31

标签: autohotkey

我有一个带有以下网址的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&start=100

我将此信息传递到我的AHK代码中,并且我试图获取属性onclick的值,然后将其添加到csv文件中。例如,在下面的代码块中,它将是window.open('/r/Angela-Wallington/1872b08acbe9d892?sp=0', '_blank')

<div class="clickable_resume_card" onclick="window.open('/r/Angela-Wallington/1872b08acbe9d892?sp=0', '_blank')" target="_blank" style="cursor: pointer;">
  <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>
  <div class="experience">Controls Analyst, Everyday Banking Customer Services, Operations<span class="company"> - Royal Bank of ...</span></div>
  <div class="experience">Internal Controls Manager, Retail Processing Operations</div>
  <div class="experience">Team Manager Chatham Account Management Centre</div>
  <div class="times">
    <form action="/resumes/rpc/resume/save" method="post" style="display:inline" id="saveResumeForm-1872b08acbe9d892">
      <input type="hidden" name="indeedcsrftoken" value="t0U3JHF5msLu4nhlI9Tq81HhIAhVCiNG">
      <input type="hidden" name="rez" value="1872b08acbe9d892">
    </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>
</div>

到目前为止,这是我的代码,我似乎无法弄清楚如何获取onclick的值或循环遍历每个名​​为clickable_resume_card的元素。

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
       }
}

我做错了什么?

1 个答案:

答案 0 :(得分: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'')"'