Ich habe ein Programm, das Daten aus einer Excel-Datei nimmt und für den Benutzer manipuliert. Um jedoch Updates für die Excel-Datei zu erhalten, müssen sie von einer Website heruntergeladen werden. Ich habe ursprünglich versucht, mithilfe der Roboterklasse zur Website zu navigieren, mich mit Benutzernamen und Passwort einzuloggen, dann zum richtigen Bereich der Website zu navigieren und den Button "Excel-Tabelle herunterladen" zu finden und darauf zu klicken. Aber ich verstehe, dass es eine schreckliche Art ist, es zu tun, und es funktioniert nicht immer. Was ist ein besserer Weg, ich kann dies tun, so dass mein Programm auf die Website gehen und zu der gewünschten Seite navigieren und dann die Daten herunterladen kann. Ich habe über 'Seitenverschrottung' gelesen, aber ich glaube nicht, dass ich das tun würde. Ich möchte wirklich mit der Webseite interagieren, nicht so sehr den Inhalt herunterladen. Jede Hilfe wäre großartig. Danke, PeterWie Java-Anwendung mit einer Website interagieren
Antwort
Wenn Sie tatsächlich mit interagieren müssen Die Website dann selen/webdriver ist perfekt für Ihre Bedürfnisse:
http://code.google.com/p/selenium/wiki/GettingStarted
Beispiel Google-Suche:
package org.openqa.selenium.example;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.htmlunit.HtmlUnitDriver;
public class Example {
public static void main(String[] args) {
// Create a new instance of the html unit driver
// Notice that the remainder of the code relies on the interface,
// not the implementation.
WebDriver driver = new HtmlUnitDriver();
// And now use this to visit Google
driver.get("http://www.google.com");
// Find the text input element by its name
WebElement element = driver.findElement(By.name("q"));
// Enter something to search for
element.sendKeys("Cheese!");
// Now submit the form. WebDriver will find the form for us from the element
element.submit();
// Check the title of the page
System.out.println("Page title is: " + driver.getTitle());
}
}
Würde es einen Weg geben, dies zu erreichen, OHNE dem Benutzer zu zeigen, was vor sich geht? Wie im Browser würde sich das nie öffnen aber alles würde immer noch hinter den Kulissen erledigt werden? – Ethan
Verwenden Sie unbedingt einen kopflosen Browser wie PhantomJS oder starten Sie einen Browser im Headless-Modus – Pablojim
Sie könnten HTTP-Anfragen verwenden, um die Datei herunterzuladen, wenn Sie die URL kennen. Eine schnelle Google fand diese: http://download.oracle.com/javase/tutorial/networking/urls/readingWriting.html die Datei herunterladen und
Danke, ich habe den Link für die Zukunft gespeichert, aber der Link, den ich herunterladen muss, hat keine direkte URL, zu der ich gelangen kann, ohne mich zuerst auf der Website einzuloggen. Also brauche ich mehr eine Möglichkeit, mit der Website zu interagieren, so dass ich mich anmelden und auf den Link – Peter
kann die Website bietet jede Art von API dafür, dies zu tun? Wenn nicht, ist Scraping wirklich Ihre einzige Option, abgesehen davon, dass Sie Ihre Roboterlösung verwenden (was, wie Sie sagen, ziemlich schrecklich ist) –
Ich verstehe nicht auf der Festplatte speichern, dass wir nun zum Download verwenden Excel-Datei. kann ich Ihnen folgende Lösungen anbieten:
Ich denke, das Ihnen helfen sollte ...
- 1. Wie kann ich über Racket mit einer Website interagieren?
- 2. interagieren mit einer Schnittstelle?
- 3. Wie programmgesteuert mit einer Anwendung interagieren
- 4. Wie interagieren Signale mit Sequenzpunkten?
- 5. Erstellen einer GUI mit Putty interagieren
- 6. Interagieren mit separaten Frames
- 7. Android: Interagieren Sie mit einer anderen App?
- 8. Interagieren mit einer Windows-Konsolenanwendung über Python
- 9. Welche Python-Tools kann ich verwenden, um mit der API einer Website zu interagieren?
- 10. Wie Klassen miteinander interagieren
- 11. Wie interagieren Sie mit einer Smartcard in Java?
- 12. Wie mit ssh mit Subprozessmodul interagieren
- 13. Wie interagieren durch vim?
- 14. Interagieren mit Farbeingabe mit Winkelmesser
- 15. Interagieren mit zwei Schleifen
- 16. asp.net interagieren mit .mdf-Dateien
- 17. Interagieren mit Sellerie laufenden Aufgabe
- 18. Ember.js: Wie Integrationstestkomponenten, die mit Glutendatenmodellen interagieren
- 19. Wie interagieren Sie mit Amazon gekauften Artikeln?
- 20. Wie mit Java-Scanner-Klasse interagieren
- 21. Wie drehe ich ein Hintergrundbild, ohne mit der gesamten Website zu interagieren?
- 22. Interagieren mit Elasticsearch in django
- 23. Interagieren mit Komponente in Komponente
- 24. Interagieren mit Mail obwohl UIDocumentInteractionController
- 25. Interagieren mit "systemweit" Media Player
- 26. deaktivieren Benutzer interagieren in einer Ansicht IOS
- 27. Interagieren mit Windows-Fenstern programmatisch
- 28. Datentabellen: Kann nicht mit einer Reihe interagieren nach
- 29. Wie interagieren DeleteFile und FindFirstFile?
- 30. Kann ich mit Rails-Modellen innerhalb einer Capistrano-Aufgabe interagieren?
Ist die Website eine API zur Verfügung stellen Sie anstelle von verwenden können sie durch einen Submit-Button zu bekommen. –