- Регистрация
- 05.06.2016
- Сообщения
- 170
- Благодарностей
- 31
- Баллы
- 28
Нашел код на просторах интернета немного переделал под себя. Весь код состоит с нескольких частей, где то в этой есть ошибка не могу отловить. По возможности записаны комментарии. Скрипт должен на страницы вконтакте показать количество постов отвечающих требованиям. Но постоянно показывает 0. Буду очень благодарен за любые советы.
Код:
var goodElements = new List<HtmlElement>();
//собираем коллекцию всех постов
var postsCollection = instance.ActiveTab.FindElementsByAttribute("div","onclick","wall.postClick","regexp");
//проходим по каждому элементу коллекции
for (int i = 0; i < postsCollection.Count; i++)
{
// находим ребенка , тег Div с класом wall_text
var wallText = postsCollection.GetByNumber(i).FindChildByAttribute("div","class","wall_text","regexp",0);
//Получаем innerhtml найденого элемента
var innerhtml = wallText.GetAttribute("innerhtml");
//Если из слов в скобкахесть в inerhtml прерываем цыкл и берем новый элемент
if (innerhtml.Contains("wall_audio_rows") || innerhtml.Contains("wall.pollVote") || innerhtml.Contains("Page.showGif") )
{
continue;
}
// находин div с текстом нашего поста
var wallPostText = postsCollection.GetByNumber(i).FindChildByAttribute("div", "class", "wall_text", "regexp", 0);
//Обьявляем переменую haslinks где будет содержаться информация есть ли внешние ссылки в посте
var hasLinks = false;
//собираем все сылки нашего поста
var links = wallPostText.FindChildrenByTags("a");
//проходимся по всем сылкам
for (int j = 0; j < links.Count ; j ++)
{
//Берем атрибут href
var linkHref = links.GetByNumber(j).GetAttribute("href");
//Если в текущем значении href есть что-то кроме хештега
if (!linkHref.Contains("/feed?"))
{
hasLinks = true;
break;
}
}
if (hasLinks)
{
continue;
}
goodElements.Add(postsCollection.GetByNumber(i));
}
return goodElements.Count;