Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.60/40: Рейтинг темы: голосов - 40, средняя оценка - 4.60
 Аватар для ut7du
0 / 0 / 0
Регистрация: 24.06.2016
Сообщений: 161
Записей в блоге: 1

Вытащить данные с сайта

02.02.2018, 17:01. Показов 7795. Ответов 31
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет друзья !
Есть сайт www.dxsummit.fi
Нужно вытащить данные с его странички - только то что в главной табличке
Вот скриншот

Как это сделать ? Всем спасибо огромное за помощь
Миниатюры
Вытащить данные с сайта  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.02.2018, 17:01
Ответы с готовыми решениями:

Как вытащить данные с сайта 1xbet?
Здравствуйте, знает кто-то, как вытащить эти данные с 1xbet( https://www.1xbet.com/ua/live/ ) ?

Вытащить данные с сайта
Вот что имеется: <td bgcolor="white" align="center" valign="middle">95.58.211.43</td> Как вытащить данный IP, давая запрос на...

Вытащить одно слово с сайта
Есть сайт - генератор слов(http://free-generator.ru/words.html) Как можно вытащить оттуда случайно сгенерированное слово, при том что...

31
62 / 63 / 28
Регистрация: 10.01.2018
Сообщений: 360
02.02.2018, 18:36
Цитата Сообщение от ut7du Посмотреть сообщение
Нужно вытащить данные с его странички
нужно разбирать своим парсером веб-документ. Там сложная структура. excel не справится.
0
62 / 63 / 28
Регистрация: 10.01.2018
Сообщений: 360
02.02.2018, 18:41
Я бы, наверное, попробовал эммулировать мышу) Выделить таблицу, скопировать, вставить в excel, достать данные с таблицы excel-а. Там уже не сложно будет.
Вложения
Тип файла: xlsx Лист Microsoft Excel.xlsx (23.2 Кб, 6 просмотров)
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18294 / 14218 / 5368
Регистрация: 17.03.2014
Сообщений: 28,896
Записей в блоге: 1
02.02.2018, 19:16
ut7du, данные для таблицы возвращаются в виде JSON страницей http://www.dxsummit.fi/api/v1/... _time=true. Для разбора JSON уже есть готовые библиотеки так что код получается простой.
C#
1
2
3
4
5
6
7
8
string json;
using (var web = new WebClient())
{
    web.Headers.Add("User-Agent", ".NET Application");
    json = web.DownloadString("http://www.dxsummit.fi/api/v1/spots?limit_time=true&refresh=" + (DateTime.Now.Ticks / 10000000L));
}
 
Spot[] spots = JsonConvert.DeserializeObject<Spot[]>(json);
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class Spot
{
    public string info { get; set; }
    public string dx_country { get; set; }
    public double de_latitude { get; set; }
    public double dx_latitude { get; set; }
    public double dx_longitude { get; set; }
    public string de_call { get; set; }
    public double frequency { get; set; }
    public DateTime time { get; set; }
    public string dx_call { get; set; }
    public double de_longitude { get; set; }
    public int id { get; set; }
}
Разбор JSON делается с помощью Newtonsoft.Json.

Цитата Сообщение от Sternman Посмотреть сообщение
excel не справится
При чем тут Excel?
3
02.02.2018, 21:40

Не по теме:

Цитата Сообщение от OwenGlendower Посмотреть сообщение
При чем тут Excel?
сайты с простыми таблицами, проще всего загонять в excel он их парсит, получаем готовый результат без лишних телодвежений

0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18294 / 14218 / 5368
Регистрация: 17.03.2014
Сообщений: 28,896
Записей в блоге: 1
02.02.2018, 21:43
Sternman, программу на C# он тоже без лишних телодвижений сделает?
1
 Аватар для ut7du
0 / 0 / 0
Регистрация: 24.06.2016
Сообщений: 161
Записей в блоге: 1
02.02.2018, 23:24  [ТС]
Цитата Сообщение от OwenGlendower Посмотреть сообщение
Для разбора JSON уже есть готовые библиотеки так что код получается простой.
А где про это можно поподробнее узнать ?
Мне нужно в принципе то 4 строчки из это JSON

Добавлено через 3 минуты
Цитата Сообщение от OwenGlendower Посмотреть сообщение
Разбор JSON делается с помощью Newtonsoft.Json.
Я скачал Exe-шник. Подскажите как правильно его установить
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18294 / 14218 / 5368
Регистрация: 17.03.2014
Сообщений: 28,896
Записей в блоге: 1
02.02.2018, 23:37
Цитата Сообщение от ut7du Посмотреть сообщение
А где про это можно поподробнее узнать ?
Мне нужно в принципе то 4 строчки из это JSON
На официальном сайте, который тебе, однако, уже не нужен т.к. я привел весь необходимый код для скачивания и парсинга. Далее обычная работа с элементами массива. С этим ты в состоянии справится?

Цитата Сообщение от ut7du Посмотреть сообщение
Я скачал Exe-шник. Подскажите как правильно его установить
Какой exe-шник? По ссылке NuGet пакет который нужно добавить ссылку с помощью команды Manage NuGet Packages контекстного меню папки References в проекте.
1
 Аватар для ut7du
0 / 0 / 0
Регистрация: 24.06.2016
Сообщений: 161
Записей в блоге: 1
03.02.2018, 09:56  [ТС]
Цитата Сообщение от OwenGlendower Посмотреть сообщение
привел весь необходимый код для скачивания и парсинга. Далее обычная работа с элементами массива. С этим ты в состоянии справится?
Доброе утро !
Я так понял что данные сохраняются в классе Spot ?
Я тогда буду вытаскивать их оттуда.
А ваш фрагмент кода оформлю в виде метода и буду его вызывать в обработчике таймера с интервалом к примеру 1 минута

Сегодня попробую. Очень вам благодарен !

Добавлено через 1 час 50 минут
Не получается вытащить данные из Spot[] spots
Как обратится правильно к массиву spots ?
Если я делаю так

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public Form1()
        {
            InitializeComponent();
            tm.Interval = 5000;
            tm.Enabled = true;
            tm.Tick += Tm_Tick;
        }
 
        private void Tm_Tick(object sender, EventArgs e)
        {
            GetSpot();
            Spot sp = new Spot();
            textBox1.AppendText(sp.de_call);
            
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            tm.Start();
        }
То ничего не происходит.
0
 Аватар для Faiotti
29 / 30 / 15
Регистрация: 24.01.2018
Сообщений: 132
03.02.2018, 10:26
GetSpot должен его возвращать.
А не создаваться new Spot.
0
 Аватар для ut7du
0 / 0 / 0
Регистрация: 24.06.2016
Сообщений: 161
Записей в блоге: 1
03.02.2018, 12:36  [ТС]
C#
1
2
3
4
5
6
7
8
9
10
11
12
public void GetSpot()
        {
            string json;
            using (var web = new WebClient())
            {
                web.Headers.Add("User-Agent", ".NET Application");
                json = web.DownloadString("http://www.dxsummit.fi/api/v1/spots?limit_time=true&refresh=" + (DateTime.Now.Ticks / 10000000L));
            }
 
            Spot[] spots = Newtonsoft.Json.JsonConvert.DeserializeObject<Spot[]>(json);
            
        }
Ничего не возвращает.
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18294 / 14218 / 5368
Регистрация: 17.03.2014
Сообщений: 28,896
Записей в блоге: 1
03.02.2018, 13:08
ut7du, чтобы метод возвращал значение нужно указать тип возврата и вернуть соотвествующее значение. А у тебя void метод - то есть метод который ничего не возвращает.
C#
1
2
3
4
5
6
7
8
9
10
11
        public Spot[] GetSpots()
        {
            string json;
            using (var web = new WebClient())
            {
                web.Headers.Add("User-Agent", ".NET Application");
                json = web.DownloadString("http://www.dxsummit.fi/api/v1/spots?limit_time=true&refresh=" + (DateTime.Now.Ticks / 10000000L));
            }
 
            return Newtonsoft.Json.JsonConvert.DeserializeObject<Spot[]>(json);
        }
Вызов метода
C#
1
2
3
4
5
6
7
8
        private void Tm_Tick(object sender, EventArgs e)
        {
            Spot[] spots = GetSpots();
            foreach (Spot sp in spots)
            {
                textBox1.AppendText(sp.de_call);
            }
        }
1
 Аватар для ut7du
0 / 0 / 0
Регистрация: 24.06.2016
Сообщений: 161
Записей в блоге: 1
03.02.2018, 13:42  [ТС]
OwenGlendower - спасибо огромное !!!!
Очень очень вам благодарен !
Работаю дальше.
0
 Аватар для ut7du
0 / 0 / 0
Регистрация: 24.06.2016
Сообщений: 161
Записей в блоге: 1
03.02.2018, 14:55  [ТС]
Вот что получилось в рабочей версии программы (правда не все еще готово)

Правда еще не могу в DataGridview прыгнуть на конечную строчку (может подскажете ?)
Спасибо огромное
Миниатюры
Вытащить данные с сайта  
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18294 / 14218 / 5368
Регистрация: 17.03.2014
Сообщений: 28,896
Записей в блоге: 1
03.02.2018, 16:11
Цитата Сообщение от ut7du Посмотреть сообщение
Вот что получилось в рабочей версии программы (правда не все еще готово)
Ты в состоянии написать подобную программу, но не в состоянии написать метод возвращающий значение? Как такое возможно?

Цитата Сообщение от ut7du Посмотреть сообщение
Правда еще не могу в DataGridview прыгнуть на конечную строчку (может подскажете ?)
Так по идее:
C#
1
dataGridView.CurrentCell = dataGridView[0, dataGridView.RowCount-1];
Добавлено через 59 минут
ut7du, чисто из любопытства. Внутри "Azimut control" находится изображение или это какой-то элемент управления? Если последнее, то какой именно?
0
 Аватар для ut7du
0 / 0 / 0
Регистрация: 24.06.2016
Сообщений: 161
Записей в блоге: 1
03.02.2018, 16:30  [ТС]
Цитата Сообщение от OwenGlendower Посмотреть сообщение
Ты в состоянии написать подобную программу, но не в состоянии написать метод возвращающий значение? Как такое возможно?
Я много чего еще не знаю . Я только учусь. И благодаря таким как вы - я тоже приобретаю знания.
Программа еще не закончена. Нужно еще сделать чтение второго СОМ порта - там МК выдает значение от 0 до 259
и нужно стрелкой указывать на азимутальной карте текущий азимут поворота антенны. Но этот фрагмент уже отработан. Осталось его только вставить в саму программу.
Не работает еще поиск в БД по первому или первому и второму символах в начале позывного.
При клике в таблице в DX кластере автоматически заносится позывной из таблички в форму и показывает если есть повтор. Работает поиск в БД.
Не работает пока еще при клике в ячейке DX cluster - автоматический переход радиостанции на частоту указанную в DX cluster. Но это дело времени.
Работает индикация частоты и вида излучения радиостанции . Идет обмен через СОМ (USB) порт по протоколу Kenwood

Вот такая у меня задача ... Думаю выполнима с помощью интернет сообщества - которому я очень благодарен за терпение к моим вопросам и ответам.
Потихоньку буду реализовывать дальше мой проект.
С ув. Владимир

Добавлено через 6 минут
Цитата Сообщение от OwenGlendower Посмотреть сообщение
ut7du, чисто из любопытства. Внутри "Azimut control" находится изображение или это какой-то элемент управления? Если последнее, то какой именно?
На основе PictureBox - там рисунок азимутальной карты с моим географическим центром. Там рисую стрелку. По умолчанию
в момент запуска программы стрелка стоит на нулевом градусе. При включении питания контроллера (он подключен через USB) я считываю из порта данные и соответственно отрисовываю стрелку на тот градус куда смотрит антенна.
Очень удобно когда не нужно "пялится" на маленький 3.5 дюймовый экранчик.
Вот как то так ...
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18294 / 14218 / 5368
Регистрация: 17.03.2014
Сообщений: 28,896
Записей в блоге: 1
03.02.2018, 17:32
Цитата Сообщение от ut7du Посмотреть сообщение
На основе PictureBox - там рисунок азимутальной карты с моим географическим центром. Там рисую стрелку.
Ясно.
0
 Аватар для ut7du
0 / 0 / 0
Регистрация: 24.06.2016
Сообщений: 161
Записей в блоге: 1
03.02.2018, 18:52  [ТС]
Цитата Сообщение от OwenGlendower Посмотреть сообщение
Так по идее:
dataGridView.CurrentCell = dataGridView[0, dataGridView.RowCount-1];
Не не "прыгает" на последнюю запись.
Вот так я сделал:
C#
1
dataGridView2.FirstDisplayedScrollingRowIndex = dataGridView2.RowCount - 1;
"Прыгает" на последнюю строчку - но выделения последней строки нет. Ну пускай так пока будет
0
 Аватар для ut7du
0 / 0 / 0
Регистрация: 24.06.2016
Сообщений: 161
Записей в блоге: 1
04.02.2018, 19:22  [ТС]
Цитата Сообщение от OwenGlendower Посмотреть сообщение
ut7du, данные для таблицы возвращаются в виде JSON страницей http://www.dxsummit.fi/api/v1/... _time=true. Для разбора JSON уже есть готовые библиотеки так что код получается простой
Уважаемый OwenGlendoewer !
Подскажите пожалуйста - нужно сейчас послать на страничку www.dxsummit.fi данные
Остальное все уже работает - без отсылки данных это половина задачи.
Премного благодарен за помощь
0
 Аватар для ut7du
0 / 0 / 0
Регистрация: 24.06.2016
Сообщений: 161
Записей в блоге: 1
04.02.2018, 19:24  [ТС]
Вот так решил сделать компоновку
Миниатюры
Вытащить данные с сайта  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.02.2018, 19:24
Помогаю со студенческими работами здесь

Вытащить название элемента с сайта
Здравствуйте, работаю с C# чуть больше недели, решил написать программу, которая бы отправляла смс через сайт билайна. Например,...

Как вытащить информацию с сайта?
На примере есть сайт http://xseo.in/ipinfo , (жмём проверить ip ) и в поле IPGEO info показана информация: city: region: district: ...

Вытащить данные из ответа от сервера
Всем привет, я получил ответ от сервера в нем такие строчки: &lt;script language=javascript&gt;...

Как вытащить данные из JSON?
Нужно из этого {&quot;response&quot;:} Вытащить значения first_name и last_name в одноименные переменные. Есл можно подробно ну начиная с...

Вытащить данные из файла XML
Привет всем ! Есть файлик с расширением xml. Подскажите как вытащить данные из xml файла Хоть от чего отталкиваться ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru