C# - umieszczanie danych ze strony internetowej

0

Piszę prostą aplikację, która ma pobierać dane ze strony. Pobieram już źródło strony w htmlu i chce odfiltrować liczby od pozostałych znaków. Używam metody Split, ale nie działa. Proszę o pomoc i wyrozumiałość, dopiero co uczę się C# :)

 
  
               string []split = strona.Lines[646].Split(new char[3] = {'>', '<'});



               // dane_z_lini.Text = strona.Lines[646].Split(new char[3]);
                label1.Text = strona.Lines[640].ToString();
                label2.Text = strona.Lines[748].ToString();
                label3.Text = strona.Lines[658].ToString();
                label4.Text = strona.Lines[652].ToString();
                label5.Text = strona.Lines[814].ToString();
                label6.Text = strona.Lines[712].ToString();
                label7.Text = strona.Lines[718].ToString();

<image>foo
Nowy obraz mapy bitowej (2).jpg</image>

0

Słyszałeś o stringach?
W ten sposób się nie tworzy żadnych tablic.
Co to za magiczne liczby? Dlaczego zamiast nich nie użyjesz chociażby 42?

0

Już tłumaczę. Te liczby z tablic to linie, które są w textboxie, i które wrzucam w etykiety tekstowe, a zależałby mi na wyświetlaniu w tych etykietach tylko liczb, bo to co jest w textboxie, to kod html strony internetowej. Od razu mówię, że do strony, z której pobieram nie mam żadnego innego dostępu. Jest to po prostu jakiś prosty problem ze stringami do rozwiązania. Jeżeli mógłbyś, to prosiłbym Cię o jakąś inną podpowiedź jak można inaczej rozwiązać mój problem, może nawet o fragment kodu :)

0

Jest inny sposób, niż analizowanie całego kodu source i "na ślepo" celowanie w linijkę. Można pobrać całą stronę i ją od analizować jak w przeglądarce. Do każdego elementu strony można dojść. (jak w css)

// Tworzymy niewidzialną przeglądarkę.
this.webBrowser1 = new System.Windows.Forms.WebBrowser();
this.webBrowser1.DocumentCompleted += new System.Windows.Forms.WebBrowserDocumentCompletedEventHandler(this.BrowserDocumentCompleted);

// "Kierujemy nią"

webBrowser1.Url = new Uri(sciezka);

// 

void BrowserDocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
	if (e.Url.AbsolutePath != (sender as WebBrowser).Url.AbsolutePath)
		return;

	// Pierwszy sposób, po ID.
	String r1 = webBrowser1.Document.GetElementById("id").InnerHtml; // lub InnerText

	// Drugi sposób, po tagu.
	String r2 = String.Empty;
	foreach (HtmlElement elem in webBrowser1.Document.GetElementsByTagName("label"))
	{
		if (elem.GetAttribute("class") == "big")// Sprawdzenie np po klasie, którą element posiada.
		{
			r2 = elem.InnerHtml; // lub InnerText
		}
	}
}
0

OK, dzięki za pomoc, jednak wciąż mi nie działa

1

OK, problem rozwiązany, zamykam temat

1 użytkowników online, w tym zalogowanych: 0, gości: 1