Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.03.2016, 15:21   #11
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,322
По умолчанию

Почему не работает?

В консоле вижу:
Цитата:
Please wait...

{"ErrorCode":404}

Done.
Код:
using System;
using System.Threading.Tasks;
using System.Net;
using Newtonsoft.Json.Linq;
using System.Text.RegularExpressions;
using System.Security.Cryptography;
using System.Text;

namespace CheckTrust
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Please wait...\n");
            ShowTrustInfo().Wait();
            Console.WriteLine("\nDone.");

            // Delay
            Console.ReadKey();
        }

        static async Task ShowTrustInfo()
        {
            using (var client = new WebClient())
            {
                string url = "http://api.xtool.ru/";
                
                JObject obj = new JObject();
                obj.Add("type", "trust");
                obj.Add("login", "********@gmail.com");
                obj.Add("pass", GetCrypt("********")); //"hash('sha512', '********')");
                obj.Add("url", "http://xtool.ru/");

                var resp = await client.UploadStringTaskAsync(url, "PUT", obj.ToString());

                Console.WriteLine(Regex.Unescape(resp));
            }
        }

        static string GetCrypt(string text)
        {
            string hash = "";
            SHA512 alg = SHA512.Create();
            byte[] result = alg.ComputeHash(Encoding.UTF8.GetBytes(text));
            hash = Encoding.UTF8.GetString(result);
            return hash;
        }
    }
}
8Observer8 вне форума Ответить с цитированием
Старый 23.03.2016, 15:22   #12
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,520
По умолчанию

Не знаю. У меня сколько кнопок нажал, столько и запросов.
1. базовая проверка сайта
GET http://xtool.ru/trust/?site=programmersforum.ru
ответом приходит страничка
2. когда кнопку про полный анализ жмёшь
POST http://xtool.ru/ajax/?ShowTrust
с запросом передаётся строка вида wlh=http%3A%2F%2Fxtool.ru%2Ftrust%2 F%3Fsite%3Dprogrammersforum.ru
плюс там печенька PHPSESSID скорее всего привязана, которая приходит в первом ответе.
в обратку приходит json вида:
Цитата:
{"error":"","table":"<br\/>\r\n\t<p class=\"trust\">\u0422\u0440\u0430\ u0441\u0442 xt = <span class=\"blue\">8<\/span> (<span class=\"green\">+1<\/span>)<\/p>\r\n\t<a class=\"trust\" href=\"http:\/\/www.programmersforum.ru\" rel=\"nofollow\" target=\"_blank\">www.programmersfo rum.ru<\/a>\r\n\t<h2 class=\"trust\">\u0424\u043e\u0440\ u0443\u043c \u043f\u0440\u043e\u0433\u0440\u043 0\u043c\u043c\u0438\u0441\u0442\u04 3e\u0432<\/h2><br\/>\r\n\t<table width=\"700\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\r\n\t\t<tr>\r\n\ t\t\t<td colspan=\"3\" class=\"tab_bg\"><img src=\"http:\/\/favicon.yandex.net\/favicon\/programmersforum.ru\" width=\"16\" height=\"16\" border=\"0\" align=\"absmiddle\"\/> &nbsp; \u0414\u0430\u0442\u0430 \u043f\u043e\u0441\u043b\u0435\u043 4\u043d\u0435\u0439 \u0430\u043a\u0442\u0443\u0430\u043 b\u044c\u043d\u043e\u0439 \u043f\u0440\u043e\u0432\u0435\u044 0\u043a\u0438: 22.03.2016 21:40:03<\/td>\r\n\t\t<\/tr>\r\n\t\t<tr>\r\n\t\t\t<td><span class=\"blue\">\u0421\u0441\u044b\u 043b\u043e\u043a \u0432\u043d\u0435\u0448\u043d\u043 8\u0445 \/ \u0432\u043d\u0443\u0442\u0440\u043 5\u043d\u043d\u0438\u0445:<\/span><\/td>\r\n\t\t\t<td width=\"120\"><b>11<\/b> \/ <b>264<\/b><\/td>\r\n\t\t\t<td rowspan=5 class=\"dpp\">\r\n\t\t\t\t\t\t\t\t< div><img src=\"https:\/\/advertur.ru\/assets\/files\/banners\/logo_clear_sm.png?retadv02\"><br><a title=\"\u0417\u0430\u0440\u0430\u0 431\u0430\u0442\u044b\u0432\u0430\u 0439 \u043d\u0430 \u043f\u043e\u043a\u0430\u0437\u043 0\u0445 \u0431\u0430\u043d\u043d\u0435\u044 0\u043e\u0432!\" href=\"https:\/\/advertur.ru\/?rf=marketing&utm_source=xtool&utm_ medium=link&utm_campaign=oplata_za_ pokazyi_bannerov_oplata_bez_zaderzh ek\" style=\"font-size:13px; underline; font-weight: bold;\" rel=\"nofollow\" target=\"_blank\">\u041e\u043f\u043 b\u0430\u0442\u0430 \u0437\u0430 \u043f\u043e\u043a\u0430\u0437\u044 b \u0431\u0430\u043d\u043d\u0435\u044 0\u043e\u0432. \u0412\u044b\u043f\u043b\u0430\u044 2\u044b \u0431\u0435\u0437 \u0437\u0430\u0434\u0435\u0440\u043 6\u0435\u043a!<\/a><\/div>\r\n\t\t\t\t<br><span
...
хламина, в общем, а не человеческий json c данными. Если и API такое возвращает, то его делал дурак
3. Если щелкнуть по какой-нибудь из вкладок, то пересылается
POST http://xtool.ru/ajax/?ShowTrustTab
tab=02&wlh=http%3A%2F%2Fxtool.ru%2F trust%2F%3Fsite%3Dprogrammersforum. ru
т.е. передаётся там номер вкладки
в обратку опять json приходит
Цитата:
{"error":null,"content":"\t\t<di v class=\"graph container\"><\/div>\n\t<script type=\"text\/javascript\">\n\t\t$(function(){\n\ t\t\tvar site = 'programmersforum.ru';\n\t\t $('.graph.container').highcharts({\ n\t\t\t\ttitle: {\n\t\t\t\t\ttext: '\u0418\u0441\u0442\u043e\u0440\u04 38\u044f \u0438\u0437\u043c\u0435\u043d\u043 5\u043d\u0438\u044f \u0422\u0418\u0426 \u0441\u0430\u0439\u0442\u0430 ' + site\n\t\t\t\t},\n\t\t\t\tsubtitle: {\n\t\t\t\t\ttext: '\u0418\u0441\u0442\u043e\u0447\u04 3d\u0438\u043a: Yandex.ru'\n\t\t\t\t},\n\t\t\t\tyAx is: {\t\/\/ \u0428\u043a\u0430\u043b\u0430 \u043f\u043e Y\n\t\t\t\t\ttitle: {\n\t\t\t\t\t\ttext: '\u0422\u0418\u0426'\n\t\t\t\t\t}\n \t\t\t\t},\n\t\t\t\tseries: [{\t\/\/ \u0413\u0440\u0443\u043f\u043f\u043 0 \u0442\u043e\u0447\u0435\u043a\n\t\ t\t\t\tname: \"\u0422\u0418\u0426\",\n\t\t\t\t\t data: [[Date.UTC(2016, 2, 22, 0, 0),475],[Date.UTC(2016, 1, 23, 0, 0),475],[Date.UTC(2016, 1, 2, 0, 0),475],[Date.UTC(2015, 11, 25, 0, 0),475],[Date.UTC(2015, 11, 4, 0, 0),450],[Date.UTC(2015, 10, 22, 0, 0),450],[Date.UTC(2015, 9, 22, 0, 0),450],[Date.UTC(2015, 9, 15, 0, 0),450],[Date.UTC(2015, 9, 8, 0, 0),450],[Date.UTC(2015, 8, 28, 0, 0),425],[Date.UTC(2015, 8, 25, 0, 0),425],[Date.UTC(2015, 8, 1, 0, 0),425],[Date.UTC(2015, 7, 13, 0, 0),425],[Date.UTC(2015, 7, 7, 0, 0),475],[Date.UTC(2015, 6, 26, 0, 0),475],[Date.UTC(2015, 6, 3, 0, 0),475],[Date.UTC(2015, 5, 28, 0, 0),475],[Date.UTC(2015, 5, 16, 0, 0),475],[Date.UTC(2015, 5, 1, 0, 0),400],[Date.UTC(2015, 4, 17, 0, 0),400],[Date.UTC(2015, 4, 10, 0, 0),400],[Date.UTC(2015, 3, 28, 0, 0),400],[Date.UTC(2015, 3, 27, 0, 0),400],[Date.UTC(2015, 3, 18, 0, 0),400],[Date.UTC(2015, 3, 14, 0, 0),375],[Date.UTC(2015, 3, 10, 0, 0),375],[Date.UTC(2015, 2, 30, 0, 0),375],[Date.UTC(2015, 2, 26, 0, 0),375],[Date.UTC(2015, 2, 15, 0, 0),375],[Date.UTC(2015, 2, 10, 0, 0),475],[Date.UTC(2015, 1, 12, 0, 0),475],[Date.UTC(2015, 1, 7, 0, 0),475],[Date.UTC(2015, 0, 27, 0, 0),475],[Date.UTC(2014, 11, 31, 0, 0),475],[Date.UTC(2014, 11, 21, 0, 0),375],[Date.UTC(2014, 10, 13, 0, 0),375],[Date.UTC(2014, 10, 5, 0, 0),375],[Date.UTC(2014, 9, 23, 0, 0),375],[Date.UTC(2014, 9, 10, 0, 0),375],[Date.UTC(2014, 8, 28, 0, 0),400],[Date.UTC(2014, 8, 11, 0, 0),400],[Date.UTC(2014, 7, 26, 0, 0),400],[Date.UTC(2014, 7, 21, 0, 0),400],[Date.UTC(2014, 7, 16, 0, 0),400],[Date.UTC(2014, 7, 10, 0, 0),400],[Date.UTC(2014, 6, 21, 0, 0),400],[Date.UTC(2014, 6, 10, 0, 0),400],[Date.UTC(2014, 6, 1, 0, 0),375],[Date.UTC(2014, 5, 4, 0, 0),375],[Date.UTC(2014, 4, 12, 0, 0),400],[Date.UTC(2014, 4, 6, 0, 0),400],[Date.UTC(2014, 3, 13, 0, 0),375],[Date.UTC(2014, 1, 28, 0, 0),325],[Date.UTC(2014, 1, 24, 0, 0),325],[Date.UTC(2014, 1, 20, 0, 0),325],[Date.UTC(2014, 1, 4, 0, 0),375],[Date.UTC(2014, 0, 31, 0, 0),375],[Date.UTC(2014, 0, 3, 0, 0),375],[Date.UTC(2013, 11, 7, 0, 0),375],[Date.UTC(2013, 10, 8, 0, 0),375],[Date.UTC(2013, 9, 28, 0, 0),375],[Date.UTC(2013, 9, 14, 0, 0),375],[Date.UTC(2013, 8, 13, 0, 0),400],[Date.UTC(2013, 7, 29, 0, 0),400],[Date.UTC(2013, 6, 23, 0, 0),400],[Date.UTC(2013, 5, 17, 0, 0),400],[Date.UTC(2013, 3, 7, 0, 0),400],[Date.UTC(2013, 2, 25, 0, 0),425],[Date.UTC(2013, 1, 10, 0, 0),425],[Date.UTC(2012, 10, 4, 0, 0),375],[Date.UTC(2012, 9, 9, 0, 0),325],[Date.UTC(2012, 7, 8, 0, 0),325],[Date.UTC(2012, 5, 13, 0, 0),250],[Date.UTC(2012, 3, 8, 0, 0),275],[Date.UTC(2011, 11, 29, 0, 0),300],[Date.UTC(2011, 11, 12, 0, 0),275],[Date.UTC(2011, 11, 5, 0, 0),300]]\n\t\t\t\t}]\n\t\t\t})\n\t\t});\n\t<\/script>\n"}
ответы все упакованы gzip'ом, вроде. fiddler по крайней мере нормально декодирует
pu4koff вне форума Ответить с цитированием
Старый 23.03.2016, 15:27   #13
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,520
По умолчанию

Цитата:
Сообщение от 8Observer8 Посмотреть сообщение
Почему не работает?
Какой в итоге json отправляется в виде запроса? Не JArray ли для его сборки пользовать нужно?
pu4koff вне форума Ответить с цитированием
Старый 23.03.2016, 15:42   #14
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,322
По умолчанию

Цитата:
Сообщение от pu4koff Посмотреть сообщение
Какой в итоге json отправляется в виде запроса? Не JArray ли для его сборки пользовать нужно?
Там строка в Json формате, в консоле выглядит так:

Цитата:
{
"type": "trust",
"login": "*****@gmail.com",
"pass": "??L?=V?d???v????\u0006\f\u0015\u00 00?????f?\u0015R?\u000e?{?\u0000X?3
:b?_S\u000e\u0003\u001f\u00044viA\u 0016?_?\r&?u",
"url": "http://xtool.ru/"
}
Код:
                string url = "http://api.xtool.ru/";
                
                JObject obj = new JObject();
                obj.Add("type", "trust");
                obj.Add("login", "8observer8@gmail.com");
                obj.Add("pass", GetCrypt("CU1UsTGv")); //"hash('sha512', 'CU1UsTGv')");
                obj.Add("url", "http://xtool.ru/");

                Console.WriteLine(obj.ToString());
8Observer8 вне форума Ответить с цитированием
Старый 23.03.2016, 16:19   #15
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,322
По умолчанию

Цитата:
Сообщение от pu4koff Посмотреть сообщение
Какой в итоге json отправляется в виде запроса? Не JArray ли для его сборки пользовать нужно?
Получается, что я оправляю содержимое объекта JObject, а не JArray. В примерах json в квадратных скобках, как будто это массив, но в Json элементы так (через запятую ключ-значение) могу быть расположены только в объекте, а не массиве
8Observer8 вне форума Ответить с цитированием
Старый 24.03.2016, 23:02   #16
nomerasd
Пользователь
 
Регистрация: 07.03.2016
Сообщений: 16
По умолчанию

так понимаю, если профессионалы не смогли победить,
мне там делать нечего.

насколько смог разобраться, вы пытаетесь без подключения движка.
нашёл такую штуку на watin. а он справиться с данным скриптом?

P.S.
через API не подходит

Последний раз редактировалось nomerasd; 24.03.2016 в 23:07.
nomerasd вне форума Ответить с цитированием
Старый 25.03.2016, 01:08   #17
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
так понимаю, если профессионалы не смогли победить,
мне там делать нечего.
Если вы про надпись под ником, то это просто от количества сообщений

Не помню что там в Watin, обычно для автоматизации с помощью браузера используют Selenium (если не надо отображать, то Selenium'овский WebDriver для PhantomJS, ну или сам PhantomJS напрямую, но удобнее через Selenium).
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 25.03.2016, 08:15   #18
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,322
По умолчанию

Цитата:
Сообщение от nomerasd Посмотреть сообщение
так понимаю, если профессионалы не смогли победить,
мне там делать нечего.
Эта надпись появляется, по-моему, когда количество сообщений больше 1000. Я вечный начинающий. Хотел через API (сообщ. #11), но видимо, либо я натупил, либо с сайтом что-то не то.
8Observer8 вне форума Ответить с цитированием
Старый 25.03.2016, 12:23   #19
nomerasd
Пользователь
 
Регистрация: 07.03.2016
Сообщений: 16
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Не помню что там в Watin, обычно для автоматизации с помощью браузера используют Selenium (если не надо отображать, то Selenium'овский WebDriver для PhantomJS, ну или сам PhantomJS напрямую, но удобнее через Selenium).
а можно ссылку на этот selenium под мой (примерно, хотя бы) случай.
что бы можно было посмотреть, как к сайту обращаться, парсить ....
а то столько в гугле selenium-ов нашёл. а какой именно надо, хз.
nomerasd вне форума Ответить с цитированием
Старый 25.03.2016, 12:48   #20
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

В NuGet пакет Selenium.WebDriver (+ можно Selenium.Support для некоторых вспомогательных классов).

Если использовать PhantomJS, то надо еще phantomjs.exe (либо с оф. сайта PhantomJS, либо тоже в NuGet есть пакет PhantomJS) например положить рядом с программой.

Для понимания основ можно например этот курс посмотреть: [pluralsight.com] Automated Web Testing with Selenium (там с точки зрения автоматических тестов своего сайта, но не важно) ну или любой другой туториал по нему, их полно (только есть два вида: старый Selenium RC, и новый с WebDriver).
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 25.03.2016 в 16:14.
Alex11223 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
парсер на JavaScript Luca Brasi JavaScript, Ajax 8 08.02.2015 00:16
Парсер инфы с сайт используя javascript bilibian Общие вопросы Delphi 3 21.02.2014 23:20
Проблемы с отработкой запросов Жменька Microsoft Office Access 2 24.05.2011 14:53
ГРАБЕР ПАРСЕР на JavaScript vova-forum JavaScript, Ajax 2 20.01.2011 19:55