Frage

Ich mag Formulare auf HTML-Seiten zugreifen Throught Java Programming Language ohne echten Browser Beteiligung dazwischen.

Zur Zeit mache ich es durch HTML UNIT aber es ist ein bisschen mehr Zeit in Anspruch nimmt eine Seite zu laden . Wenn es um Millionen von Seite zugreifen, dann ist dieses Extra Zeit ankommt.

Gibt es noch andere Methoden, dies zu tun?

War es hilfreich?

Lösung

Ich habe etwas ähnliches verwendet genannt Httpunit vor, aber ich habe keine Ahnung, wie es die Leistung vergleicht weise .

Wenn Sie Millionen von Seiten zu verarbeiten haben, würde ich empfehlen, ein paar mehr Threads es zu werfen. Nur eine Vermutung, aber ich denke, dass, wenn Sie diese auf mehrere Threads skalieren, werden Sie aus der Bandbreite laufen, bevor Sie die CPU-Leistung laufen (in diesem Fall ist es egal, wie viel schneller könnte es sein)

Andere Tipps

eine Webseite mit einem Browser zugreifen, auch Htmlunit, wird langsam sein. Eine bessere Methode ist href="http://blog.objectmentor.com/articles/2010/01/04/ui-test-automation-tools-are-snake-oil" rel="nofollow noreferrer"> Test , so dass Sie Millionen von Seiten nicht zugreifen müssen -. Sie stattdessen genug testen, um sicherzustellen, dass die Web-Oberfläche der untere Schicht korrekt mit

Die meisten der Interaktion in Browser kommt auf einen HTTP-GET oder einer HTTP POST. Sie müssen genau den Vorgang, um herauszufinden, was Sie brauchen, und dann können Sie die URL und / oder Formulardaten aufzubauen. Dann sind Sie so etwas wie diese verwenden:

   try { 
    //Construct data 
    String data = URLEncoder.encode("key1", "UTF-8") + "=" + URLEncoder.encode("value1", "UTF-8"); data += "&" + URLEncoder.encode("key2", "UTF-8") + "=" + URLEncoder.encode("value2", "UTF-8"); 
    // Send data 
    URL url = new URL("http://hostname:80/cgi"); 
    URLConnection conn = url.openConnection(); conn.setDoOutput(true); 
    OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream()); 
    wr.write(data); 
    wr.flush(); 

    // Get the response 
    BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream())); 
    String line; while ((line = rd.readLine()) != null) { 

    // Process line... } 
    wr.close(); 
    rd.close(); 
    } catch (Exception e) { } 
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top