Вход

Просмотр полной версии : js+imacros нужна помощь новичку.


matrix27
13.07.2016, 07:43
помогите поправить скрипт начинает работать и остнавливается на 10 строке и пишет такую ошибку
TypeError: dlinaMasiva[i] is undefined, line 10 (Error code: -991)
просьба помочь подправить что я не так сделал скрипт должен собирать ссылки на откр и кол больше 5000 чел и брать в масиив и выводить на дисплей помогите
var dlinaMasiva = content.document.getElementsByClassName('_pac').le ngth
var arrUrlTxt = []
for (i=0;i<dlinaMasiva;i++){
if (content.document.body.scrollHeight>window.innerHeight+content.document.documentElemen t.scrollTop==true){
window.scrollTo(0,(content.document.documentElemen t.scrollHeight))
}
var otkr = content.document.getElementsByClassName('_pac')[0].innerHTML.replace(/\&nbsp;/g, "")=='Общедоступная группа'
var kolUhastn = content.document.getElementsByClassName('_pac')[0].innerHTML.replace(/\&nbsp;/g, "")=='5000участник'
if("otkr" >="kolUhastn"){
var silkaHTML = dlinaMasiva[i].getElementsByClassName('_gll')[0].innerHTML;
var facebokUrlTxt = "https://www.facebook.com/"+(silkaHTML.substring(silkaHTML.indexof('<a href="')+10)).sprit('"')[0]
if(arrfacebookUrlTxt.indexof(facebookUrlTxt)==-1){(arrfacebookUrlTxt.push(facebookUrlTxt))}
iimDisplay("группа- "+ facebookUrlTxt+"\n"+ "длина массива- "+ content.document.getElementsByClassName('_gll').le ngth+"\n"+"массив- "+arrfacebookUrlTxt )
}
}

Spass
16.07.2016, 18:29
dlinaMasiva у тебя число, какой реакции ты от него ожидаешь написав dlinaMasiva[i]?

matrix27
17.07.2016, 07:39
то есть dlinaMasiva[i] что надо число прописать?или в первой строке число?

Spass
17.07.2016, 16:43
var dlinaMasiva = content.document.getElementsByClassName('_pac').le ngth

dlinaMasiva это количество элементов с классом '_pac' (т.е. просто число)

var silkaHTML = dlinaMasiva[i].getElementsByClassName('_gll')[0].innerHTML;

здесь ты к числу обращаешься как к массиву

matrix27
19.07.2016, 15:06
привет но все равно не догоню почему он не делает сейчас пишет на10 ошибка TypeError: topik[i].getElementsByClassName(...)[0] is undefined, line 10 (Error code: -991) хотя ниже скрип вк и этот один в один только классы разные там все пашет тут не хера
вот как переделал код var topik=content.document.getElementsByClassName('_42 ef');
var dlinaMasiva = 5000;
var arrfacebokUrlTxt = []
for (i=0;i<dlinaMasiva;i++){
if (content.document.body.scrollHeight>window.innerHeight+content.document.documentElemen t.scrollTop==true){
window.scrollTo(0,(content.document.documentElemen t.scrollHeight))
}
if (topik[i]==undefined){break}

var topikHTML = topik[i].getElementsByClassName('_pac')[0].innerHTML;
var facebokUrlTxt = "https://www.facebook.com/"+(topikHTML.substring(topikHTML.indexof('<a href="')+10)).sprit('"')[0]
if(arrfacebookUrlTxt.indexof(facebookUrlTxt)==-1){(arrfacebookUrlTxt.push(facebookUrlTxt))}
iimDisplay("группа- "+ facebookUrlTxt+"\n"+ "длина массива- "+ content.document.getElementsByClassName('_gll').le ngth+"\n"+"массив- "+arrfacebookUrlTxt )
} помоги нубу:help:
вот код вк var topik=content.document.getElementsByClassName('inf o fl_l')
var naydeno=parseInt(content.document.getElementsByCla ssName('summary')[0].textContent.replace(/\s+/g, '').substring(7))//сколько найдено сообществ
var arrVkUrlTxt=[]
for (i=0;i<naydeno;i++){
if (content.document.body.scrollHeight>window.innerHeight+content.document.documentElemen t.scrollTop==true){
window.scrollTo(0,(content.document.documentElemen t.scrollHeight))
}
if (topik[i]==undefined){break}
var topikHTML = topik[i].getElementsByClassName('labeled')[0].innerHTML // топик HTML
var VkUrlTxt ='https://vk.com/'+ (topikHTML.substring(topikHTML.indexOf('<a href="/')+10)).split('"')[0]// ссылка
if(arrVkUrlTxt.indexOf(VkUrlTxt)==-1){arrVkUrlTxt.push(VkUrlTxt)}// если нет этой ссылки, добавляем
iimDisplay("группа- "+ VkUrlTxt+"\n"+ "длина массива- "+ arrVkUrlTxt.length+"\n"+"массив- "+ arrVkUrlTxt)
}

Spass
19.07.2016, 15:35
Попробуй так

var topik=content.document.getElementsByClassName('_42 ef');
var dlinaMasiva = 5000;
var arrfacebokUrlTxt = []
for (i=0;i<dlinaMasiva;i++){
if (content.document.body.scrollHeight>window.innerHeight+content.document.documentElemen t.scrollTop==true){
window.scrollTo(0,(content.document.documentElemen t.scrollHeight))
}
if (topik[i]!=undefined){
var topikHTML = topik[i].getElementsByClassName('_pac')[0].innerHTML;
var facebokUrlTxt = "https://www.facebook.com/"+(topikHTML.substring(topikHTML.indexof('<a href="')+10)).sprit('"')[0]
if(arrfacebookUrlTxt.indexof(facebookUrlTxt)==-1){(arrfacebookUrlTxt.push(facebookUrlTxt))}
iimDisplay("группа- "+ facebookUrlTxt+"\n"+ "длина массива- "+ content.document.getElementsByClassName('_gll').le ngth+"\n"+"массив- "+arrfacebookUrlTxt )
} else { break; }
}

matrix27
22.07.2016, 08:06
тоже вот такую ошибку выдает TypeError: topik[i].getElementsByClassName(...)[0] is undefined, line 10 (Error code: -991)
че надо не догоняю:-?

Spass
22.07.2016, 10:53
topik[i].getElementsByClassName('_pac')[0].innerHTML;

У тебя в выборку ничего не падает, можно конечно проверять так
if (topik[i].getElementsByClassName('_pac').lenght) {
var topikHTML = ...
...
}

Но возможно проблема в том что у тебя получается неправильная структура (т.е. в _42ef нету блоков _pac)

matrix27
22.07.2016, 13:08
вот ссылка на скрин глянь если можешь я там вроде подробно обресовал
http://prntscr.com/bw2dic

matrix27
22.07.2016, 13:34
topik[i].getElementsByClassName('_pac')[0].innerHTML;

У тебя в выборку ничего не падает, можно конечно проверять так
if (topik[i].getElementsByClassName('_pac').lenght) {
var topikHTML = ...
...
}

Но возможно проблема в том что у тебя получается неправильная структура (т.е. в _42ef нету блоков _pac)
вот ссылка на скрин глянь если можешь я там вроде подробно обресовал
http://prntscr.com/bw2dic

Spass
22.07.2016, 17:19
посмотри что тебе приходит в переменную через console.log(topik[i]);
закладка Консоль

matrix27
27.07.2016, 11:06
дружище я новичек только начинаю все это дело я даже не пойму как посмотрать это

warren buffet
29.07.2016, 00:12
var dlinaMasiva = 5000;
for (i=0;i<dlinaMasiva;i++){
if (content.document.body.scrollHeight>window.innerHeight+content.document.documentElemen t.scrollTop==true){
window.scrollTo(0,(content.document.documentElemen t.scrollHeight))
}



Пять тыщ раз прокручивает страницу в начало. Хорошее начало. Потом запрашивает пятитысчный элемент массива. Счастливый конец.

if (topik[i]==undefined){break}


Крутотень. Логи смотрят так: console.log('I'm a dunderhead'); и затем в браузере любуешься на писанину открыв панель консоли. Во всех браузерах она открывается по-разному, изучай меню типа веб-разработка.