Новости

Дізнайся, хто з друзів Вконтакте користується Twitter

Вирішив на дозвіллі перевірити, хто з друзів Вконтакте користується Twitter .

Вконтакте дуже не люблять, коли користувачі йдуть залишають їх сайт, тому не особливо люблять постинг статусів з інших сервісів (частенько прикривають шляху постинга статусів twitter-> vk), зате в зворотну сторону - будь ласка, користуйтеся на здоров'я.

Припущення: користувач закидає вконтактік, пише собі в профіль лінк на свій аккаунт в Twitter і йде туди з головою. Статуси під вконтактіке більше не пише.

Завдання: перевірити, хто з друзів ВКонакте вказав у своєму профілі лінк на Twitter.

Реалізація.
Вконтакте дуже пишаються своєю російськомовною капчі, звичайним wget-ом злити сторінки друзів і розпарсити не вийшло, пішов в обхід таким способом:

  1. отримати список друзів;
  2. згенерувати тести Selenium , Що відкривають сторінки друзів і тих, хто шукає слово "Twitter";
  3. пройтися по тестах.

Отже,

  1. Список друзів я отримую через userapi за допомогою самопального додатки - тисну кнопку "Увійти в контакті" і потім зберігаю в текстовий файл friends.
  2. Список друзів я отримую через   userapi   за допомогою   самопального додатки   - тисну кнопку Увійти в контакті і потім зберігаю в текстовий файл friends

  3. Далі за допомогою bash-скрипта (легкий sed і while по друзях) генеруючи Selenium-тести.
  4. #! / Bin / bash while read vkfile; do out = `echo $ vkfile | sed -e "s / http: \ / \ / vkontakte.ru \ /// g" `; export abc = "<? xml version = \" 1.0 \ "encoding = \" UTF-8 \ "?> \ n <! DOCTYPE html PUBLIC \" - // W3C // DTD XHTML 1.0 Strict // EN \ "\ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n<html xmlns = \" http: //www.w3.org/1999/xhtml \ "xml: lang = \ "en \" lang = \ "en \"> \ n <head profile = \ "http: //selenium-ide.openqa.org/profiles/test-case \"> \ n <meta http-equiv = \ "Content-Type \" content = \ "text / html; charset = UTF-8 \ "/> \ n <link rel = \" selenium.base \ "href = \" localhost \ "/> \ n <title> $ out </ title> \ n </ head> \ n <body> \ n <table cellpadding = \ "1 \" cellspacing = \ "1 \" border = \ "1 \"> \ n <thead> \ n <tr> <td rowspan = \ "1 \" colspan = \ "3 \"> $ out </ td> </ tr> \ n </ thead> <tbody> \ n <tr> \ n <td> open </ td> \ n <td> $ vkfile </ td > \ n <td> </ td> \ n </ tr> \ n <tr> \ n <td> click </ td> \ n <td> link = показати детальну інформацію </ td> \ n <td> </ td> \ n </ tr> \ n <tr> \ n <td> verifyTextPresent </ td> \ n <td> twitter </ td> \ n <td> </ td> \ n </ tr> \ n </ tbody> </ table> \ n </ body> \ n </ html> \ n "; echo $ abc> $ out; done <friends

    Для тих користувачів, які встановили у себе в профілі "не приховувати детальну інформацію" тести майже такі ж:

    #! / Bin / bash while read vkfile; do out = `echo $ vkfile | sed -e "s / http: \ / \ / vkontakte.ru \ /// g" `; export abc = "<? xml version = \" 1.0 \ "encoding = \" UTF-8 \ "?> \ n <! DOCTYPE html PUBLIC \" - // W3C // DTD XHTML 1.0 Strict // EN \ "\ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n<html xmlns = \" http: //www.w3.org/1999/xhtml \ "xml: lang = \ "en \" lang = \ "en \"> \ n <head profile = \ "http: //selenium-ide.openqa.org/profiles/test-case \"> \ n <meta http-equiv = \ "Content-Type \" content = \ "text / html; charset = UTF-8 \ "/> \ n <link rel = \" selenium.base \ "href = \" localhost \ "/> \ n <title> $ out </ title> \ n </ head> \ n <body> \ n <table cellpadding = \ "1 \" cellspacing = \ "1 \" border = \ "1 \"> \ n <thead> \ n <tr> <td rowspan = \ "1 \" colspan = \ "3 \"> $ out </ td> </ tr> \ n </ thead> <tbody> \ n <tr> \ n <td> open </ td> \ n <td> $ vkfile </ td > \ n <td> </ td> \ n </ tr> \ n <tr> \ n <td> verifyTextPresent </ td> \ n <td> twitter </ td> \ n <td> </ td> \ n </ tr> \ n </ tbody> </ table> \ n </ body> \ n </ html> \ n "; echo $ abc> $ out; done <friends

  5. Проходжу 2 рази цими тестами (для користувачів у яких треба натискати на кнопку "Показати детальну інформацію" і для тих, у кого не треба).
  6. Проходжу 2 рази цими тестами (для користувачів у яких треба натискати на кнопку Показати детальну інформацію і для тих, у кого не треба)

    Додаю все згенеровані тести в testSuite і тисну кнопку "Play entire test suite". Швидкість ставлю низьку, щоб не забанили і не було проблем з капчі. Картинки в Firefox відключаю.

    Отримую в віконці Selenium підсвічені зеленим кольором рядки тих користувачів, хто обмовився слівцем "Twitter" у себе в профілі.

З 369 моїх друзів на 8 сторінках було знайдено слово "Twitter", з цих восьми 5 осіб (1,35% від усіх друзів) - вказали свої профілі, інші три - профілі в підписках. Припущення, можна вважати вірним 🙂

Всі вихідні в одному zip .

Ru \ /// g" `; export abc = "<?
Encoding = \" UTF-8 \ "?
Ru \ /// g" `; export abc = "<?
Encoding = \" UTF-8 \ "?

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

Или позвоните нам по телефонам: (048) 823-25-64

Организация (обязательно) *

Адрес доставки

Объем

Как с вами связаться:

Имя

Телефон (обязательно) *

Мобильный телефон

Ваш E-Mail

Дополнительная информация: