'n Tag zusammen Ich versuche gerade einen Video Downloader zu Programmieren, der mir videos von einem Streamingportal herunterlädt. Im Prinzip möchte ich nur eine URL eingeben und einen Download Button drücken, um den Download zu starten. Also habe ich den Qualltext ausgelesen und nach dem attribut "file: " gesucht. Dabei ist mir aufgefallen, dass die Webseite einen Submit Button verlangt, damit der Stream gestartet wird. Nun möchte ich der Webseite vorgaukeln, dass ich diesen Button gedrückt habe und stattdessen auf die nachfolgenede Webseite gelangen, dort den Queltext auslesen und dann den Link im "file:" Attribut aufrufen. Und ja mir ist durchaus bewusst, dass dieser Button genau dieses verhindern soll aber einen versuch wärs wert. Ich habe schon ein wenig recherchiert und habe schon einige befehle bzw. Codeaschnitte gefunden, die mir weitergeholfen haben, allerings weiß ich nicht wie genau ich das ganze jetzt umsetzen soll. Zum auslesen des Quelltextes verwende ich einen WebClient, zum suchen die string.IndexOf()Funktion. Das mit dem Button hätte ich in etwa hier gefunden: http://stackoverflow.com/questions/6233151/c-sharp-how-to-click-button-auttomaticly-via-webbrowser Aber wie ich das ganze jetzt in ein Programm integriere ist mir schleierhaft. mfg Michael
Das einfachste wäre wohl statt der WebClient-Klasse das WebBrowser-Control zu nutzen (was auch in dem stackoverflow-Beitrag gemacht wird)
gut soweit funktioniert das jetzt. Jetzt hab ich folgendes Problem: Ich durchsuche den Text nach der Zeile, in der der Link zu der Datei ist, dann schneide ich alles weg, was nicht zur URL gehört(was auch soweit funktioniert)ABER dann weiß ich nicht so wirklich wie ich weitermachen soll. Aktuell versuche ich es mit einem WebClient um den Download zu starten. Und da stehe ich gerade ziemlich auf der Leitung. Der Download wird nicht gestartet, stattdessen stürzt das Programm ab. Normalerweise muss man den link nur noch öffnen und der Download beginnt (Chrome, Firefox usw.) aber wie mache ich das hier? Außerdem sollte das File auch noch einen bestimmten namen bekommen. Hat da jemand eine Idee? mfg Michael
Michael schrieb: > Der Download wird nicht gestartet, stattdessen stürzt das Programm ab. Mit welcher Exception denn? Was steht in der Zeile des Crashes im Code?
Also ich hab noch ein wenig rumgespielt und verwende jetzt den Async File Downloader, somit stürzt nichts mehr ab, allerdings funktioniert der auch nicht wirklich. Dieser gibt ca. nach einer Sekunde aus, dass der Download fertig gestellt ist(was natürlich nicht der Fall ist.) mfg Michael
"Async File Downloader" sagt mir nix. Ich würde erstmal das WebBrowser-Control auf die URL navigieren lassen und schauen ob der die überhaupt runterladen/öffnen kann oder ob die Seite da evtl. noch irgendwelche JavaScript-Tricks verbaut hat. Wenn es im Control geht, müssen in deinem "Async File Downloader" womöglich noch Referer, UserAgent, Cookies etc. passend gesetzt werden.
Achso, es ist nur die WebClient-Komponente gemeint ;D Wenn der synchrone Aufruf nicht geht, wird es der asynchrone auch nicht tun - da wird die Exception dann wohl einfach in e.Error stehen statt geworfen zu werden. Da muss man halt einfach mal schauen wie denn die Exception lautet.
Das mit der Exception ist ja der Springende Punkt. So eine gibt es ja nicht. Es wird mir nur angezeigt, dass der Download fertiggestellt ist. mfg Michael
Michael schrieb: > Es wird mir nur angezeigt, dass der Download fertiggestellt ist. Wurde denn ueberhaupt irgendetwas runtergeladen, und wenn ja, was? Gruesse
e.Error in DownloadFileCompleted ist ganz sicher null? Welche Exception kam/kommt denn bei der synchronen Variante?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.