我試圖使用python和selen來跟蹤instagram。 (我不是顯影劑JavaScript或蟒。)方法execute_script不要等待腳本結束在python中使用selenium返回值
無論如何,我想在execute_script JS返回的用戶的陣列。
並以js腳本返回。
我的Python代碼:
ole = []
ole = driver.execute_script("dd = document.getElementsByClassName(\"_8mlbc _t5r8b\"); i = 9; ret = []; before = 0; function need_up() { before = document.getElementsByClassName(\"_4zhc5 _ook48\")[0].title; } function loveu() { if (i == dd.length){return ret;} dd[i].click(); b = setTimeout(need_up, 300);ret.push(before); i++; a = setTimeout(loveu, 400);} return loveu();")
的可讀性這裏是縮進的JavaScript代碼:
dd = document.getElementsByClassName("_8mlbc _t5r8b");
i = 9;
ret = [];
before = 0;
function get_name_user() {
before = document.getElementsByClassName("_4zhc5 _ook48")[0].title;
}
function get_array_user()
{
if (i == dd.length){
return ret;
}
dd[i].click();
b = setTimeout(get_name_user, 500);
ret.push(before);
i++;
a = setTimeout(get_array_user, 500);
}
get_array_user();
return ret;
您可以嘗試在這個網址(用於爲例)這個代碼,它的工作原理ONLY on firefox:https://www.instagram.com/explore/tags/happy/
謝謝
什麼是你確切的問題? – bastelflp
喲異步調用get_array_user(),所以它不會等待遞歸結果。如果你想等待遞歸,你需要使用回調函數。 – Buaban
對不起,我的問題實際上是當我試圖得到我的代碼的返回JS我有一個數組爲空,因爲我的腳本運行後ole = driver.execute_script。 – Fantasim