我想用WinHttpRequest從此網頁獲取電話號碼。 有JavaScript隨機順序改變數字 - 我不明白的算法。從網頁提取電話號碼
http://www.doska.ru/msg/work/courses-education/seminari-un-trenini/ailoo.html
下面是對代碼的AutoHotkey:
WebRequest := ComObjCreate("WinHttp.WinHttpRequest.5.1")
WebRequest.Open("GET", "http://www.doska.ru/msg/work/courses-education/seminari-un-trenini/ailoo.html", false)
WebRequest.Send()
Body := WebRequest.ResponseBody
pArr := ComObjValue(Body)
cBytes := NumGet(pArr+0, A_PtrSize = 8? 24:16, "uint")
pText := NumGet(pArr+0, A_PtrSize = 8? 16:12, "ptr")
var := StrGet(pText, cBytes, "utf-8")
RegExMatch(var, "id=""ph_td_2"">(.+?)</span>", phone)
msgbox % phone1
生成電話號碼的腳本似乎是:
<script type="text/javascript">open_stat_lnk("");change_price(8, 0, "", 0);show_banner();
var show_code = "Наберите текст с картинки"; var show_phone = "Показать номер"; var pcc_id=0;
print_phone(PH_2,2,0);if(PH_c && !pcc_id){pcc_id=2;eval(PH_c);}
</script>
功能print_phone(PH_2,2,0)我發現這裏: http://i.doska.ru/w_inc/js/main.ru.doska.js?v=251
function print_phone(d, k, b) {
var g = el("ph_td_" + k);
if (!g) {
g = el("ph_td")
}
if (!g || !d) {
return
}
var f = p2 = _js_decode(d);
if (b) {
var c = el("ptd2_" + k);
if (c) {
c = c.innerHTML;
c = c.split("<");
c = c[0];
c = c.replace("(", "");
c = c.replace(")", "");
p2 = f.replace("-", "");
p2 = p2.replace("-", "");
p2 = p2.replace("-", "");
p2 = c + "" + p2
}
g.innerHTML = '<a href="tel:' + p2 + '">' + f + "</a>"
} else {
g.innerHTML = f
}
g.style.visibility = "visible"
}
請幫我解決這個問題。
你的問題是什麼? –
問題是,如何獲得真正的電話號碼,而不執行此JavaScript。用我的代碼,我得到這個電話號碼1967607,但真正的電話號碼是166-09-77 – malcev
如果你總是得到1967607然後只是改變數字的順序。 –