Создания черного списка в контакте.

Автоматизация вконтакте, мой мир, одноклассники, фейсбук, твиттер.
gerar
Сообщения: 38
Зарегистрирован: 01 май 2012, 09:08

Создания черного списка в контакте.

Сообщение gerar » 16 июн 2018, 21:20

Создания черного списка в контакте.
Техническое ограничение соц сети в контакте 10 тысяч друзей, создает проблему с подписками.
Вы отправили запрос на добавления в друзья, но по какой-то причине, вас не добавили.
Вы находитесь в статусе подписчика и особой пользы вам это не приносит.
По данной ссылке можно посмотреть https://vk.com/friends?section=out_requests ваш статус
Мы видим, что есть два статуса: отписаться и отменить заявку.
Отменить заявку значит, что одобрения вас как друга находиться на рассмотрении.
С этической точки зрения при статусе «отписаться» и сразу подавать повторную заявку сразу после отписки, чревато проблемами. Пользователь, которому вы вновь подадите заявку, может вас заблокировать или пожаловаться на спам. Поэтому появилась идея реализовать функцию черного списка, чтобы повторно не добавлять заявку в друзья и избежать в дальнейшем проблем с блокировкой.
Пробую создать для этого скрипт, но пока опыта слишком мало.
Сейчас забуксовал, не могу грамотно спарсить
Нужно вытащить все в массив и разобрать на два списка
Список 1 Отменить заявку
Список 2 Отписаться
Затем записать id пользователя со статусом отписаться в отдельный файл.
При написании скрипта использовал информацию с замечательного сайта http://www.x-scripts.com/scripts/clear_vk_dogs.php
Подскажите пожалуйста как это можно реализовать в коде.
<?php

$xhe_host = "127.0.0.1:7010";

// The following code is required to properly run XWeb Human Emulator
require("../Templates/xweb_human_emulator.php");

// ////////////////////////////// настройки 
// логин
$vk_login = "7ххххххххх";
// пароль
$vk_pwd ="хххххххххххххх";

// путь к файлу с результатом
$str_res="result.txt";
 
// перешли
$browser->navigate("https://vk.com/");
sleep(3);
 
//  /////////////////////// логинимся
if($input->is_exist_by_name("email"))
{
$input->set_focus_by_attribute("id","index_email");
$input->send_keyboard_input_by_name("email",$vk_login);
usleep($mic_pause);
$input->set_focus_by_attribute("id","index_pass");
$input->send_keyboard_input_by_name("pass",$vk_pwd);
$btn->click_by_name("index_login_button");
}

// переходим по ссылке статуса подписок
$browser->navigate("https://vk.com/friends?section=out_requests");

// получить подгрузившиеся акки
$arr_rows=$div->get_all_inner_htmls_by_attribute("id","request_controls");

foreach($arr_rows as $row)
{
echo $row . "<br />";

$id_vk=get_string($str1, $pr1, $pr2, &$ind_st = 0)
}
$textfile->add_string_to_file($str_res,$id_vk."\r\n");
 
// получение строки по префиксам
function get_string($str1, $pr1, $pr2, &$ind_st = 0)
{
   //echo $str1."<br>";
   $ind1 = strpos($str1, $pr1, $ind_st);
   // echo "index 1 ".$ind1."<br>";
   if($ind1 === false)
      return "";
 
   $ind2 = strpos($str1, $pr2, $ind1+ strlen($pr1));
   //echo "index 2 ".$ind2."<br>";
   if ($ind2 === false)
      return "";
    
   // запомним стартовый индекс
   $ind_st = $ind2 + 1;
   // 
   $sres = substr($str1, $ind1 + strlen($pr1), $ind2 - $ind1-strlen($pr1));
 
   return trim($sres); 
}

$app->quit();
?>

Аватара пользователя
xscripts
Сообщения: 80
Зарегистрирован: 24 янв 2012, 12:48
Контактная информация:

Re: Создания черного списка в контакте.

Сообщение xscripts » 16 июн 2018, 21:36

В какой версии программы работаете? Пробовали работать через https://m.vk.com/friends?section=out_requests? В мобильном ВК разбор будет проще сделать.
http://x-scripts.com/

Код: Выделить всё

<?php
$xhe_host ="127.0.0.1:7010";

require("../Templates/xweb_human_emulator.php");

$browser->navigate("http://x-scripts.com");

$app->quit();?>

gerar
Сообщения: 38
Зарегистрирован: 01 май 2012, 09:08

Re: Создания черного списка в контакте.

Сообщение gerar » 16 июн 2018, 21:46

xscripts писал(а):
16 июн 2018, 21:36
В какой версии программы работаете? Пробовали работать через https://m.vk.com/friends?section=out_requests? В мобильном ВК разбор будет проще сделать.
Спасибо за подсказку
Работаю в последней версии XWeb Human Emulator Studio Version 7.0.8
Программа развивается бешеными темпами по сравнению с бесплатной версией в плане удобств небо и земля.
В плане парсинга общие представления имею. Вроде все понимаю, но сделать ни чего не получается

Аватара пользователя
xscripts
Сообщения: 80
Зарегистрирован: 24 янв 2012, 12:48
Контактная информация:

Re: Создания черного списка в контакте.

Сообщение xscripts » 17 июн 2018, 00:37

Вот такой скрипт получился. С https://m.vk.com/friends?section=out_requests не судьба, там надписи на кнопках все одинаковые, так что работаем в обычном вк.

На что стоит обратить внимание:
1. Прокручиваем страницу вниз пока не получим всех отписчиков в наш массив. У меня в тестовом аккаунте было около 1000 друзей, так что как это работать будет с 10000-ми хз. Но логика простая - жмём клавишу PageDown рандомно по 15 -20 раз с рандомными паузами в виде микросекундах. Если что то захотите меня, вот этот код. Найдёте его в скрипте и там поменяете.

// пауза между нажатием клавиш PageDown в микросекундах (1/1000000 сек)
$min_down = 10000;
$mах_down = 400000;

и

// нажимаем PageDown n раз
 $cnt_pageDown = mt_rand(15,20);

Клавиша PageDown нажимается до тех пор пока наш массив меняется, то есть на странице появляются новые отписчики. Как только на странице не подгружается новые отписчики скрипт переходит к собиранию id в строку и потом уже в самом конце записывает эту строку сразу в файл с результатами в виде:
7444538
26778467
85064810
18648228
57345517
49872143
1172817
69113809
и т.д.

2. Скрипт заточен под русский язык, для других языков нужно будет поменять название кнопки Отписаться в этих строчках.

// получить все кнопки
$arr_div = $div->get_all_by_inner_text("Отписаться",true);

Сам скрипт:

<?php

$xhe_host = "127.0.0.1:7010";

// The following code is required to properly run XWeb Human Emulator
require("../Templates/xweb_human_emulator.php");

// ////////////////////////////// настройки 
// логин
$vk_login = "*************";
// пароль
$vk_pwd ="***************";

// путь к файлу с результатом
$str_res="result.txt";
 
$mic_pause = 200;
// пауза между нажатием клавиш PageDown в микросекундах (1/1000000 сек)
$min_down = 10000;
$mах_down = 400000;
// ожидаем на загрузку страницы в микросекундах
$mt_wait_on_load = 300000;

// перешли
$browser->navigate("https://vk.com/");
sleep(3);
 
//  /////////////////////// логинимся
if($input->is_exist_by_name("email"))
{
    $input->set_focus_by_attribute("id","index_email");
    $input->send_keyboard_input_by_name("email",$vk_login);
    usleep($mic_pause);
    $input->set_focus_by_attribute("id","index_pass");
    $input->send_keyboard_input_by_name("pass",$vk_pwd);
    $btn->click_by_name("index_login_button");
   //$btn->click_by_number(0);

}

sleep(3);

if($button->is_exist_by_attribute("value", "Log in", true))
{
    echo "не удалось войти в вк <br>";
    $app->quit();
}
// /////////////////////////////////////////
// переходим по ссылке статуса подписок
$browser->navigate("https://vk.com/friends?section=out_requests");

// индикатор конца страницы
$old_cnt =0;
// получить все кнопки
$arr_div = $div->get_all_by_inner_text("Отписаться",true);
$new_cnt = count($arr_div->elements);

// прокручиваем страницу вниз
while($old_cnt!= $new_cnt)
{
  // меняем значение
  $old_cnt= count($arr_div->elements);
   // нажимаем PageDown n раз
   $cnt_pageDown = mt_rand(15,20);
   for($a=0;$a<$cnt_pageDown;$a++)
   {  
      $keyboard->send_key(34,false);
      usleep(mt_rand($min_down,$mах_down));
   }
  // ожидать на загрузку
  usleep($mt_wait_on_load);

  // вновь получаем массив с друзьями
  $arr_div = $div->get_all_by_inner_text("Отписаться",true);
 
  $new_cnt = count($arr_div->elements);   
  echo "$old_cnt = ".$new_cnt.'<br>';
}
// //////////////////////////// переходим к записи в файл
$ind_st = 0;
$id_vks="";
foreach($arr_div as $btn_deny)
{
    $id_vk=$btn_deny->get_id();
    
    $id_vk = str_replace('request_controls_','',$id_vk);
    echo $id_vk."<br>";
    
    $id_vks .=$id_vk."\r\n"; 
}
 
$textfile->add_string_to_file($str_res,$id_vks);

$app->quit();
?>
http://x-scripts.com/

Код: Выделить всё

<?php
$xhe_host ="127.0.0.1:7010";

require("../Templates/xweb_human_emulator.php");

$browser->navigate("http://x-scripts.com");

$app->quit();?>

gerar
Сообщения: 38
Зарегистрирован: 01 май 2012, 09:08

Re: Создания черного списка в контакте.

Сообщение gerar » 17 июн 2018, 08:12

xscripts писал(а):
17 июн 2018, 00:37
Вот такой скрипт получился. С https://m.vk.com/friends?section=out_requests не судьба, там надписи на кнопках все одинаковые, так что работаем в обычном вк.
Огромное спасибо за помощь.
Вот что значит опыт и грамотный технический подход к решению проблемы. Вы выбрали правильный код и получили нужный результат без всяких лишних телодвижений. На решение этой задачи я убил неделю по два три часа в день на изучение и эксперименты.
В силу своей криворукости и технической отсталости, пользовался до этого времени специализированным покупным софтом. Большинство покупателей специализированного софта, такое положения дел устраивает и они получают гарантированные результаты при минимальной затрате времени и средств. Покупатель доволен и счастлив возможно даже и при деньгах. Но мне нужно большего.
Почему я плотно взялся за изучения программы Human Emulator?
В готовом покупном программно обеспечении, как правило, страдает бизнес логика и допилить под свои нужды задача тяжело реализуемая.
У программы Human Emulator и людей умеющих работать с ним большое будущие. При грамотной тактике и продвижении на рынке, лицензия на данный софт станет обязательным условиям для процветания бизнеса и отрыва от конкурентов. Так что идея http://www.x-scripts.com/club.php просто отличная.

Аватара пользователя
Support
Site Admin
Сообщения: 1000
Зарегистрирован: 10 апр 2009, 17:45
Контактная информация:

Re: Создания черного списка в контакте.

Сообщение Support » 17 июн 2018, 11:44

gerar писал(а):
17 июн 2018, 08:12
xscripts писал(а):
17 июн 2018, 00:37
Вот такой скрипт получился. С https://m.vk.com/friends?section=out_requests не судьба, там надписи на кнопках все одинаковые, так что работаем в обычном вк.
Огромное спасибо за помощь.
Вот что значит опыт и грамотный технический подход к решению проблемы. Вы выбрали правильный код и получили нужный результат без всяких лишних телодвижений. На решение этой задачи я убил неделю по два три часа в день на изучение и эксперименты.
В силу своей криворукости и технической отсталости, пользовался до этого времени специализированным покупным софтом. Большинство покупателей специализированного софта, такое положения дел устраивает и они получают гарантированные результаты при минимальной затрате времени и средств. Покупатель доволен и счастлив возможно даже и при деньгах. Но мне нужно большего.
Почему я плотно взялся за изучения программы Human Emulator?
В готовом покупном программно обеспечении, как правило, страдает бизнес логика и допилить под свои нужды задача тяжело реализуемая.
У программы Human Emulator и людей умеющих работать с ним большое будущие. При грамотной тактике и продвижении на рынке, лицензия на данный софт станет обязательным условиям для процветания бизнеса и отрыва от конкурентов. Так что идея http://www.x-scripts.com/club.php просто отличная.
Вопрос базовых скриптов по идее должны решить плагины. С помощью плагинов можно внедрить базовый функционал для соцсетей - вход в аккаунт постинг лайки и т.д., а пользователю останется только дописать код, который будет выполнять уже уникальные действия, которые нужны только ему.

Ещё одним моментом упрощающим написание скриптов должен стать Помощник кода. В данный момент этот инструмент активно развивается и все адекватные пожелания будут учтены и внедрены. Вы можете ознакомиться с ним и отписаться в теме viewtopic.php?f=42&t=2307.

Аватара пользователя
xscripts
Сообщения: 80
Зарегистрирован: 24 янв 2012, 12:48
Контактная информация:

Re: Создания черного списка в контакте.

Сообщение xscripts » 17 июн 2018, 11:56

Support писал(а):
17 июн 2018, 11:44
Вопрос базовых скриптов по идее должны решить плагины. С помощью плагинов можно внедрить базовый функционал для соцсетей - вход в аккаунт постинг лайки и т.д., а пользователю останется только дописать код, который будет выполнять уже уникальные действия, которые нужны только ему.

Ещё одним моментом упрощающим написание скриптов должен стать Помощник кода. В данный момент этот инструмент активно развивается и все адекватные пожелания будут учтены и внедрены. Вы можете ознакомиться с ним и отписаться в теме viewtopic.php?f=42&t=2307.
Для создания плагинов надо заинтересовать разработчиков. Какой им прок от создания такого функционала?

Для полноценного использования Помощника кода в нём пока не хватает функционала, хотя сама идея достаточно здравая. Ещё один плюс это внедрение в него элементов справки. Не всегда можно оперативно найти параметры функции, особенно если её нет в документации. Приходится лезть в диалог добавления кода, что бы узнать какие параметры есть, а потом, при необходимости, ещё открывать пример использования функции, что бы посмотреть как эти параметры используется. В Помощнике кода есть описание всех параметров и того что функция возвращает. Это ускоряет разработку скриптов, а скорость написания это есть хлеб разработчика скриптов. Чем больше я успею написать, тем больше заработаю, особенно когда у тебя очередь на написание скриптов.
http://x-scripts.com/

Код: Выделить всё

<?php
$xhe_host ="127.0.0.1:7010";

require("../Templates/xweb_human_emulator.php");

$browser->navigate("http://x-scripts.com");

$app->quit();?>

Аватара пользователя
Support
Site Admin
Сообщения: 1000
Зарегистрирован: 10 апр 2009, 17:45
Контактная информация:

Re: Создания черного списка в контакте.

Сообщение Support » 17 июн 2018, 12:03

xscripts писал(а):
17 июн 2018, 11:56
Для создания плагинов надо заинтересовать разработчиков. Какой им прок от создания такого функционала?
Прок - заработок денег. Простые плагины могут служить рекламой для услуг разработчика, а более сложные можно будет продавать. Любые идеи по организации продаж и защите плагинов присылайте нам на любую почту, либо пишите в теме viewtopic.php?f=42&t=1344.
xscripts писал(а):
17 июн 2018, 11:56
Для полноценного использования Помощника кода в нём пока не хватает функционала, хотя сама идея достаточно здравая. Ещё один плюс это внедрение в него элементов справки. Не всегда можно оперативно найти параметры функции, особенно если её нет в документации. Приходится лезть в диалог добавления кода, что бы узнать какие параметры есть, а потом, при необходимости, ещё открывать пример использования функции, что бы посмотреть как эти параметры используется. В Помощнике кода есть описание всех параметров и того что функция возвращает. Это ускоряет разработку скриптов, а скорость написания это есть хлеб разработчика скриптов. Чем больше я успею написать, тем больше заработаю, особенно когда у тебя очередь на написание скриптов.
Функционал дорабатывается и добавляется. Всё что есть в программе будет внедрено, полюс добавим наиболее часто используемые конструкции. Больше интересует ваше мнение о простоте использования, об удобстве работе с деревом, размещении разделов и т.д.

Аватара пользователя
xscripts
Сообщения: 80
Зарегистрирован: 24 янв 2012, 12:48
Контактная информация:

Re: Создания черного списка в контакте.

Сообщение xscripts » 17 июн 2018, 12:08

Support писал(а):
17 июн 2018, 12:03

Функционал дорабатывается и добавляется. Всё что есть в программе будет внедрено, полюс добавим наиболее часто используемые конструкции. Больше интересует ваше мнение о простоте использования, об удобстве работе с деревом, размещении разделов и т.д.
Ну если будет внедрён весь функционал то его однозначно придётся делить на разделы. Можно поделить аналогично тому, как разбиты объекты Хумана: System, Web и т.д. И ещё хорошо бы это дело соединить с контекстным меню, что бы можно было через помощник кода работать с активными элементами на странице и с самой страницей. По поводу юзабилити, мне как продвинутому пользователя, устраивает даже так :)
http://x-scripts.com/

Код: Выделить всё

<?php
$xhe_host ="127.0.0.1:7010";

require("../Templates/xweb_human_emulator.php");

$browser->navigate("http://x-scripts.com");

$app->quit();?>

gerar
Сообщения: 38
Зарегистрирован: 01 май 2012, 09:08

Re: Создания черного списка в контакте.

Сообщение gerar » 17 июн 2018, 13:04

Support писал(а):
17 июн 2018, 11:44
gerar писал(а):
17 июн 2018, 08:12
xscripts писал(а):
17 июн 2018, 00:37
Вот такой скрипт получился. С https://m.vk.com/friends?section=out_requests не судьба, там надписи на кнопках все одинаковые, так что работаем в обычном вк.
Огромное спасибо за помощь.
Вот что значит опыт и грамотный технический подход к решению проблемы. Вы выбрали правильный код и получили нужный результат без всяких лишних телодвижений. На решение этой задачи я убил неделю по два три часа в день на изучение и эксперименты.
В силу своей криворукости и технической отсталости, пользовался до этого времени специализированным покупным софтом. Большинство покупателей специализированного софта, такое положения дел устраивает и они получают гарантированные результаты при минимальной затрате времени и средств. Покупатель доволен и счастлив возможно даже и при деньгах. Но мне нужно большего.
Почему я плотно взялся за изучения программы Human Emulator?
В готовом покупном программно обеспечении, как правило, страдает бизнес логика и допилить под свои нужды задача тяжело реализуемая.
У программы Human Emulator и людей умеющих работать с ним большое будущие. При грамотной тактике и продвижении на рынке, лицензия на данный софт станет обязательным условиям для процветания бизнеса и отрыва от конкурентов. Так что идея http://www.x-scripts.com/club.php просто отличная.
Вопрос базовых скриптов по идее должны решить плагины. С помощью плагинов можно внедрить базовый функционал для соцсетей - вход в аккаунт постинг лайки и т.д., а пользователю останется только дописать код, который будет выполнять уже уникальные действия, которые нужны только ему.

Ещё одним моментом упрощающим написание скриптов должен стать Помощник кода. В данный момент этот инструмент активно развивается и все адекватные пожелания будут учтены и внедрены. Вы можете ознакомиться с ним и отписаться в теме viewtopic.php?f=42&t=2307.
Мне в силу своей технической неопытности пока сложно что-то оценивать и давать советы. Я могу только изложить свою точку зрения. В плане перспектив развития Human Emulator Studio и сообщества программистов реализующих под него скрипты это «КЛАНДАЙК».
Для примера ниша CRM и интеграция с различными соц сетями.
Сбор и автоматический ввод данных в базу данных CRM.
Набрать лидов в соц сети "В КОНТАКТЕ" особых проблем нет. Есть проблема грамотно этим управлять. У каждого бизнесмена свой собственный подход. От себя лично сказажу только одно, если бизнесмену грамотно объяснить как можно реализовать что то при помощи Human Emulator Studio, то на покупку лицензии и написания скриптов деньги найдутся. Ручной ввод данных это еще тот "ЭКСТРИМ". Тут вопрос только один. Ни программист, ни уж тем более бизнесмен понятия не имеет, как и что можно реализовать.
И те и другие должны понимать бизнес логику. А делиться такими вещами, мало кто любит. В этом плане я исключение и если мне делают добро то я отвечу тем же. В следующем топике постараюсь изложить свое виденье бизнес логики для скрипта в ВК, по приглашению друзей.
Те кто занимается бизнесом смогут прочитать и оценить сколько можно заработать, при помощи лицензии Human Emulator Studio и знакомства с http://www.x-scripts.com/club.php, а также сообществом программистов, работающих с данной программой.

gerar
Сообщения: 38
Зарегистрирован: 01 май 2012, 09:08

Re: Создания черного списка в контакте.

Сообщение gerar » 27 июн 2018, 07:28

Странное состояние раздвоение личности особенно хорошо познается в реальной работе. Пока читаешь чужой код вроде все понимаешь, но как доходит до конкретики и исправлением под себя впадаешь в ступор и без чужой помощи ни как.
Когда от кого надо описаться достигает больше 3 тысяч, скрипт перестает корректно работать. Решил собирать по 500 человек и обрабатывать частями. У данного скрипта очень нестандартная логика, поэтому как правильно сформировать условия и поставить ограничение на количество подписчиков не могу разобраться.
echo $new_cnt."<br>";
// прокручиваем страницу вниз

//принимаю что изменить нужно здесь
while($old_cnt!= $new_cnt) 
{
  // меняем значение
  $old_cnt= count($arr_div->elements);
   // нажимаем PageDown n раз
   $cnt_pageDown = mt_rand(15,20);
   for($a=0;$a<$cnt_pageDown;$a++)
   {  
      $keyboard->send_key(34,false);
      usleep(mt_rand($min_down,$mах_down));
   }
  // ожидать на загрузку
  usleep($mt_wait_on_load);
Думаю что можно реализовать вот так 
if $cnt_pageDown < 500; 
{
  // ожидать на загрузку
  usleep($mt_wait_on_load);
 
// вновь получаем массив с друзьями
  else $arr_div = $div->get_all_by_inner_text("Отписаться",true);
}
Но как правильно пока недогоняю

Аватара пользователя
xscripts
Сообщения: 80
Зарегистрирован: 24 янв 2012, 12:48
Контактная информация:

Re: Создания черного списка в контакте.

Сообщение xscripts » 27 июн 2018, 15:25

gerar писал(а):
27 июн 2018, 07:28
Думаю что можно реализовать вот так 
if $cnt_pageDown < 500; 
{
  // ожидать на загрузку
  usleep($mt_wait_on_load);
 
// вновь получаем массив с друзьями
  else $arr_div = $div->get_all_by_inner_text("Отписаться",true);
}
Но как правильно пока недогоняю
с точки зрения синтаксиса код ваш должен выглядеть так:
 
if($cnt_pageDown < 500) 
{
  // ожидать на загрузку
  usleep($mt_wait_on_load);
}
else 
{
// вновь получаем массив с друзьями
$arr_div = $div->get_all_by_inner_text("Отписаться",true);
}

с точки зрения логики работы скрипта он вообще не верен. Скрипт работает как он прокручивает страницу вниз и получает всех на кого вы подписались. каждый раз при обновлении он получает в массив всех новых с помощью кода:

// вновь получаем массив с друзьями
$arr_div = $div->get_all_by_inner_text("Отписаться",true);

ТО есть что бы получать другое количество от кого надо отписаться то по идее вам нужно перед каждой прокруткой вниз проходиться по массиву и нажимать кнопку отписаться. НО тогда надо менять логику работы скрипта и делать прокрутку страницы до тех пор пока массив count($arr_div)>0.

Опять таки если вам нужны id сохранять то нужно будет запись в файл делать перед тем как нажимать на кнопку Отписаться.

ТО есть логика такая.
1. Делаем прокрутку страницы вниз.
2. Получаем подписчиков в массив.
3. записываем из массива id в файл
4. нажимаем на все Отписаться из массива
5. Опять прокручиваем страницу вниз
6. и т.д. пока не отпишемся от всех

В этом отношении куда удобнее работать с m.vk.com, так как там все подписчики разделены на страницы и не надо заниматься постоянной прокруткой, но там текст кнопок одинаковый и не понятно как определять подписан ты или добавлен в друзья. возможно только переходить на страницу друга/подписчика, но это несколько затягивает работу скрипта.
http://x-scripts.com/

Код: Выделить всё

<?php
$xhe_host ="127.0.0.1:7010";

require("../Templates/xweb_human_emulator.php");

$browser->navigate("http://x-scripts.com");

$app->quit();?>

gerar
Сообщения: 38
Зарегистрирован: 01 май 2012, 09:08

Re: Создания черного списка в контакте.

Сообщение gerar » 27 июн 2018, 21:14

xscripts писал(а):
27 июн 2018, 15:25
gerar писал(а):
27 июн 2018, 07:28
Думаю что можно реализовать вот так 
if $cnt_pageDown < 500; 
{
  // ожидать на загрузку
  usleep($mt_wait_on_load);
 
// вновь получаем массив с друзьями
  else $arr_div = $div->get_all_by_inner_text("Отписаться",true);
}
Но как правильно пока недогоняю
с точки зрения синтаксиса код ваш должен выглядеть так:
 
if($cnt_pageDown < 500) 
{
  // ожидать на загрузку
  usleep($mt_wait_on_load);
}
else 
{
// вновь получаем массив с друзьями
$arr_div = $div->get_all_by_inner_text("Отписаться",true);
}

с точки зрения логики работы скрипта он вообще не верен. Скрипт работает как он прокручивает страницу вниз и получает всех на кого вы подписались. каждый раз при обновлении он получает в массив всех новых с помощью кода:

// вновь получаем массив с друзьями
$arr_div = $div->get_all_by_inner_text("Отписаться",true);

ТО есть что бы получать другое количество от кого надо отписаться то по идее вам нужно перед каждой прокруткой вниз проходиться по массиву и нажимать кнопку отписаться. НО тогда надо менять логику работы скрипта и делать прокрутку страницы до тех пор пока массив count($arr_div)>0.

Опять таки если вам нужны id сохранять то нужно будет запись в файл делать перед тем как нажимать на кнопку Отписаться.

ТО есть логика такая.
1. Делаем прокрутку страницы вниз.
2. Получаем подписчиков в массив.
3. записываем из массива id в файл
4. нажимаем на все Отписаться из массива
5. Опять прокручиваем страницу вниз
6. и т.д. пока не отпишемся от всех

В этом отношении куда удобнее работать с m.vk.com, так как там все подписчики разделены на страницы и не надо заниматься постоянной прокруткой, но там текст кнопок одинаковый и не понятно как определять подписан ты или добавлен в друзья. возможно только переходить на страницу друга/подписчика, но это несколько затягивает работу скрипта.
Огромное спасибо за реальную помощь.
В КОНТАКТЕ отлично защищенный от парсинга сайт и такому дилетанту как я, парсить его без помощи профи очень сложно.
Спасибо что показываете крутые способы обхода защиты от парсинга, это дорогого стоит. Я наивный чукотский мальчик думал что, прочитав несколько книжек по языкам программирования смогу самостоятельно писать скрипы не имея практики.
Все как в кинокомедии. «Он совсем не говорит по русски, но все понимает. С вашей помощью процесс обучения идет нормальными темпами. Подобные проблемы возникают не только у меня, но и других кто пытается освоить автоматизацию. Думаю что ваши обстоятельные ответы заставят многих раскошелиться на приобретение Human Emulatorа или его обновления.
Реально очень крутой софт, особенно после перехода на новый движок. Плохо только одно. Вы подтвердили мои самые худущие опасения, логику в скрипте надо полостью переделывать под новые условия. Я думаю, что мне пока самому не переделать. С ВКОНТАКЕ и с его тотальной защитой от хоявщиков начинающему сложно экспериментировать и получать стабильные результаты.
Но мне отступать некуда) Human Emulator купил, умные книжки прочитал, затратив при этом кучу времени.
Попробую переделывать, а там буду решать проблемы по мере поступления и просить о помощи.

По старой версии скрипта подскажите, как выставить лимиты на скорость записи id в файл. Не успевает создать файл и внести туда записи.

Аватара пользователя
xscripts
Сообщения: 80
Зарегистрирован: 24 янв 2012, 12:48
Контактная информация:

Re: Создания черного списка в контакте.

Сообщение xscripts » 27 июн 2018, 22:47

gerar писал(а):
27 июн 2018, 21:14
По старой версии скрипта подскажите, как выставить лимиты на скорость записи id в файл. Не успевает создать файл и внести туда записи.
Смотрите там запись в файл идёт после сбора всех id

// //////////////////////////// переходим к записи в файл
$ind_st = 0;
$id_vks="";
foreach($arr_div as $btn_deny)
{
    $id_vk=$btn_deny->get_id();
    
    $id_vk = str_replace('request_controls_','',$id_vk);
    echo $id_vk."<br>";
    
    $id_vks .=$id_vk."\r\n"; 
}
 
$textfile->add_string_to_file($str_res,$id_vks);



поэтому если скрипт не собирает все то он не будет писать в файл. Как вариант можно делать следующее, добавить в скрипт следующий код:

 // прервать сбор на 500 аккаунтах
  if(count($arr_div)>500)
     break;

тогда скрипт будет работать следующим образом. Собираем в массив 500 записей, далее прерываем сбор, записываем в файл, скрипт останавливается. При повторном запуске скрипт будет собирать те же аккаунты если от них не отписаться. поэтому для обработки всего списка нужно отписываться в процессе сбора. Ну и можно менять цифру 500 в большую сторону пока не начнутся проблемы с работой скрипта.

Сам скрипт:

// прокручиваем страницу вниз
while($old_cnt!= $new_cnt)
{
  // меняем значение
  $old_cnt= count($arr_div->elements);
   // нажимаем PageDown n раз
   $cnt_pageDown = mt_rand(15,20);
   for($a=0;$a<$cnt_pageDown;$a++)
   {  
      $keyboard->send_key(34,false);
      usleep(mt_rand($min_down,$mах_down));
   }
  // ожидать на загрузку
  usleep($mt_wait_on_load);

  // вновь получаем массив с друзьями
  $arr_div = $div->get_all_by_inner_text("Отписаться",true);
 
  $new_cnt = count($arr_div->elements);   
  echo "$old_cnt = ".$new_cnt.'<br>';

 // прервать сбор на 500 аккаунтах
  if(count($arr_div)>500)
     break;
}
// //////////////////////////// переходим к записи в файл
$ind_st = 0;
$id_vks="";
foreach($arr_div as $btn_deny)
{
    $id_vk=$btn_deny->get_id();
    
    $id_vk = str_replace('request_controls_','',$id_vk);
    echo $id_vk."<br>";
    
    $id_vks .=$id_vk."\r\n"; 
}
 
$textfile->add_string_to_file($str_res,$id_vks);
http://x-scripts.com/

Код: Выделить всё

<?php
$xhe_host ="127.0.0.1:7010";

require("../Templates/xweb_human_emulator.php");

$browser->navigate("http://x-scripts.com");

$app->quit();?>

Аватара пользователя
Support
Site Admin
Сообщения: 1000
Зарегистрирован: 10 апр 2009, 17:45
Контактная информация:

Re: Создания черного списка в контакте.

Сообщение Support » 28 июн 2018, 15:28

gerar писал(а):
27 июн 2018, 21:14
Спасибо что показываете крутые способы обхода защиты от парсинга, это дорогого стоит. Я наивный чукотский мальчик думал что, прочитав несколько книжек по языкам программирования смогу самостоятельно писать скрипы не имея практики.
Все как в кинокомедии. «Он совсем не говорит по русски, но все понимает. С вашей помощью процесс обучения идет нормальными темпами. Подобные проблемы возникают не только у меня, но и других кто пытается освоить автоматизацию. Думаю что ваши обстоятельные ответы заставят многих раскошелиться на приобретение Human Emulatorа или его обновления.
Реально очень крутой софт, особенно после перехода на новый движок. Плохо только одно. Вы подтвердили мои самые худущие опасения, логику в скрипте надо полостью переделывать под новые условия. Я думаю, что мне пока самому не переделать. С ВКОНТАКЕ и с его тотальной защитой от хоявщиков начинающему сложно экспериментировать и получать стабильные результаты.
Но мне отступать некуда) Human Emulator купил, умные книжки прочитал, затратив при этом кучу времени.
Попробую переделывать, а там буду решать проблемы по мере поступления и просить о помощи.
Именно для того чтобы облегчить работу с программой для обычных пользователей и добавляется Помощник кода. С его помощью намного легче писать скрипты и находить нужный функционал. Единственное что вам останется это понять логику работы скрипта. Для этого просто делаем руками то что хотим автоматизировать и вот логика готова. Сейчас инструмент на стадии доработки и обкатки и нам важно знать ваше мнение на сколько удобен и полезен такой инструмент.

Ответить