Получить конкретный текст с веб-сайта (html)

88
13

Я хочу сделать небольшую программу, чтобы я мог слушать эту радиостанцию быстро и просто.

http://www.offradio.gr/player

Проблема в том, что я не могу придумать, как получить название текущей композиции, имя продюсера и историю игр.

Я думал об извлечении конкретных данных из исходного исходного кода веб-сайта, но исходный код, как 4000 строк кода, слишком много для меня.

Есть предположения?

Я использую Visual Studio и С#

спросил(а) 2013-10-17T11:28:00+04:00 6 лет, 8 месяцев назад
1
Решение
93

Я знаю, что это не лучший способ, но это отправная точка, и она работает:

public Form1()
{
InitializeComponent();

webBrowser1.DocumentCompleted += webBrowser1_DocumentCompleted; // Subscribe event

webBrowser1.Navigate("http://www.offradio.gr/player"); // Navigate to radio stream
}

private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
/*
Look for the element containing the element with the track number
I've chosen this one because it has an ID means it always the same div
*/
HtmlElement parent = webBrowser1.Document.GetElementById("show_info");

if (parent != null) // This event fires multiple times. Sometimes this element hasn't been created yet
{
/*
We know it a childless node inside '#show_info'.
So let just search for it.
*/
foreach (HtmlElement child in parent.GetElementsByTagName("span"))
{
if (child.Children.Count == 0) // Check if it has children
{
string title = child.InnerText; // The result
break;
}
}
}
}

К сожалению, мне пришлось использовать функции.NET, с JS я бы пошел проще:

document.querySelector('#show_info.field-content').innerText

ОБНОВИТЬ:

Позвольте мне дать вам еще один намек.

Посмотрите на вывод document.getElementById('show_info').innerText.

Вы можете разобрать его, и все готово!

Надеюсь, поможет

ответил(а) 2013-10-17T12:19:00+04:00 6 лет, 8 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема