Fragensteller
C# WebBrowser lädt die Setie nicht nach JS event

Allgemeine Diskussion
-
Hallo,
Ich habe folgendes Problem ich habe ein Programm geschrieben, dass mir automatisch gewisse Elemente aus einer Seite herauslesen soll. Dabei muss ich aber über JavaScript die anzeige ändern.
Das OnClick Ereibnis kann ich schon über C# auslösen aber danach wird die Seite nicht wie bei einem richtigen Click wieder aufgebaut.Wisst ihr dabei vielleicht einen Lösungsansatz?
Die zu Bearbeitende Seite : http://en.stockbiz.vn/Stocks/AAA/FinancialStatements.aspx
Auf dieser Seite soll nun zwischen vom Balance Sheet auf Income Statement gewechselt werden.
Programm:
public void getHTML(string abk) { string url = "http://en.stockbiz.vn/Stocks/" + abk + "/FinancialStatements.aspx#"; web_go.Navigate(url); web_go.DocumentCompleted += web_go_DocumentCompleted; }
void web_go_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { string NsR1, NsR5; HtmlElementCollection htmlElements = web_go.Document.GetElementsByTagName("a"); foreach (HtmlElement item in htmlElements) {
if (item.InnerHtml.Equals("<SPAN>Income Statement</SPAN>")) { item.InvokeMember("click"); } } //HtmlElement CurrentMenue = web_go.Document.GetElementById("current"); //System.Windows.Forms.MessageBox.Show(CurrentMenue.InnerText); HtmlElement table2 = web_go.Document.GetElementById("tblReports"); NsR1 = tblsearch(table2, "Net sales revenues", 1); NsR5 = tblsearch(table2, "Net sales revenues", 5); System.Windows.Forms.MessageBox.Show(NsR1+", "+NsR5); }
Ich hoffe Ihr habt ein paar Lösungsvorschläge für mich.
MfG Christoph Buchner
- Bearbeitet Tom Lambert (Koopakiller)Moderator Freitag, 26. Juni 2015 13:34 Formatierung
- Typ geändert Aleksander Chalabashiev Freitag, 10. Juli 2015 10:27 keine bestätigte Lösung
Alle Antworten
-
Hallo,
wenn ich auf der Seite auf den Link klicke (diese Art Tab über der TreeView), wird die Seite nicht neu geladen, sondenr nur der Inhalt. Das macht es leider nicht wirklich einfacher.
An sich ist diese Vorgehensweise vielleicht zunächst funktionsfähig, aber es muss nur eine Änderung an der Webseite geben und du kommst nicht mehr an die gewünschten Daten heran. Besser wäre es da den Webseitenbetreiber zu kontaktieren ob es nicht eine offizielle Schnittstelle gibt.
Auch könnte es rechtlich Probleme geben einfach die Daten ohne Erlaubnis auszulesen.In meinen Versuchen funktionierten die Scripts übrigens immer weiter, aber es kam auch die Meldung das nichts gefunden wurde.
Tom Lambert - .NET (C#) MVP
Wozu Antworten markieren und für Beiträge abstimmen? Klicke hier.
Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter | Account bestätigen (Verify Your Account)
Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets -
Hallo,
Vielen dank für deine Antwort.
Es gibt eine offizielle Schnittstelle doch darüber bekomm ich zu viele ungebrauchte Daten das wäre höchst Ineffizient.
Ich denke mir nur rechtlich sollte das kein Problem sein da die Daten ja öffentliche Daten sind und ob ich sie mir nun manuel oder automatisch auslese sollte keinen Unterschied machen.
Ja den Punkt mit den Änderungen ist mir auch schon aufgefallen doch das nehme ich in Kauf.
Dann warte ich weiter bis einer einen Lösungsvorschlag hat zum herauslesen der Daten vielen dank für deine Hilfe.
-
Hallo,
es müssten schon sehr, sehr viel mehr MBs sein damit sich die offizielle Schnittstelle nicht lohnt. Du bastelst hier mit dem HTML herum welches sich jederzeit ändern kann - auch dürfte hier der deutlich größere Datenmüll entstehen.
Zu etwas fähig sein und die erlaubnis zu etwas haben ist ein Unterschied. Was du nun machst musst du wissen, ich wollte nur das es da zu Problemen kommt.
Tom Lambert - .NET (C#) MVP
Wozu Antworten markieren und für Beiträge abstimmen? Klicke hier.
Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter | Account bestätigen (Verify Your Account)
Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets