Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 32261|Antwort: 11

[JavaSE] Der gerade in Java geschriebene Crawler kann jetzt nur noch Bilder herunterladen (Tiefe 1) und wird weitermachen...

[Link kopieren]
Veröffentlicht am 03.06.2015 02:38:12 | | | |
Wie der Titel schon andeutet,

crawler.rar (62.53 KB, Anzahl der Downloads: 5, Verkaufspreis: 2 Getreide MB)




Vorhergehend:Weißt du, welche Webcontainer asp.net hast? Außer IIS
Nächster:Daten deduplizieren und die Sammlung zurückgeben
Veröffentlicht am 03.06.2015 21:05:36 |
Einfache Implementierung, die nicht von anderen Paketen abhängt

  1. package test;

  2. import java.io.File;
  3. import java.io.IOException;
  4. import java.io.InputStreamReader;
  5. import java.net.MalformedURLException;
  6. import java.net.URL;
  7. import java.util.regex.Matcher;
  8. import java.util.regex.Pattern;

  9. import javax.imageio.ImageIO;

  10. public class Test {
  11.         public static void main(String[] args) {
  12.                 String web="http://www.itsvse.com/";
  13.                 try {
  14.                         URL url=new URL(web);
  15.                         InputStreamReader reader=new InputStreamReader(url.openStream());
  16.                        
  17.                         StringBuilder builder=new StringBuilder();
  18.                         char[] buff=new char[1024];
  19.                         int n;
  20.                         while((n=reader.read(buff))!=-1){
  21.                                 builder.append(buff,0,n);
  22.                         }
  23.                        
  24.                         Pattern pattern=Pattern.compile("<img.*?src="(.*?)(gif|png|jpg)"");
  25.                        
  26.                         Matcher m=pattern.matcher(builder);
  27.                         while (m.find()) {
  28.                                 String u=m.group(1)+m.group(2);
  29.                                 System.out.println("dowing.."+u);
  30.                                 URL img=null;
  31.                                 if(u.startsWith("http")){
  32.                                         img=new URL(u);
  33.                                 }else{
  34.                                         img=new URL(url,u);
  35.                                 }
  36.                                 ImageIO.write(ImageIO.read(img), m.group(2), new File("D:/img/"+System.currentTimeMillis()+"."+m.group(2)));
  37.                                
  38.                         }
  39.                        
  40.                 } catch (MalformedURLException e) {
  41.                         // TODO Auto-generated catch block
  42.                         e.printStackTrace();
  43.                 } catch (IOException e) {
  44.                         // TODO Auto-generated catch block
  45.                         e.printStackTrace();
  46.                 }
  47.         }
  48. }
Code kopieren
Veröffentlicht am 04.06.2015 19:19:48 |
Delver_Si Veröffentlicht am 03.06.2015, 23:57 Uhr
Deine ursprüngliche Code-Entwicklungseffizienz ist zu niedrig, schlechte Bewertung

Ich wollte nichts sagen, aber du hast gesagt, dass Entwicklung ineffizient ist。。。。。

Das Programm erfordert die Qualität und Leistung des Codes und hat letztlich nur wenige Funktionen, eine schlechte Erweiterungsfähigkeit und eine schlechte Leistung


Führe es zehnmal hintereinander aus, ignoriere jedes Mal die Netzwerklatenz, ignoriere lokale Speicherstände und berechne nur die Zeit zum Parsen von HTML-Dokumenten – dein Programm ist weit davon entfernt.
Außerdem gibt es Fehler in deinem Code, daher werde ich nichts dazu sagen

Veröffentlicht am 03.06.2015 13:00:52 |

Ich habe Eclipse nicht installiert und es mir in einem Notizblock angesehen, zuerst den HTML-Quellcode der Webseite geholt, dann den Wert nach src erhalten und ihn dann gespeichert   

Ich weiß nicht, ob das richtig ist  
Veröffentlicht am 03.06.2015 07:49:23 |
Können Bilder im PNG-Format abgerufen werden?
 Vermieter| Veröffentlicht am 03.06.2015 10:17:34 |

Ja, ich habe das Suffix jetzt noch nicht beurteilt, alle sind als jpg gespeichert, tatsächlich kann das png-Bild mit einem jpg-Suffix geöffnet werden, und ich werde das Suffix verbessern
Veröffentlicht am 03.06.2015 12:52:13 |
Lass mich die Forschung studieren
 Vermieter| Veröffentlicht am 03.06.2015 12:57:13 |

Wie läuft die Studie?
 Vermieter| Veröffentlicht am 03.06.2015 13:05:27 |
Xiao Zhazha veröffentlicht am 03.06.2015, 13:00 Uhr
Ich habe Eclipse nicht installiert und es mir in einem Notizblock angesehen, zuerst den HTML-Quellcode der Webseite geholt, dann den Wert nach src erhalten und dann den Rough gespeichert ...

Das ist wahr
Veröffentlicht am 03.06.2015 21:12:09 |
microxdd veröffentlicht am 03.06.2015 um 21:05 Uhr
Einfache Implementierung, die nicht von anderen Paketen abhängt

Das ist der Rhythmus, der mich zwingt, Myeclipse zu installieren!
 Vermieter| Veröffentlicht am 03.06.2015 23:57:27 |
microxdd veröffentlicht am 03.06.2015 um 21:05 Uhr
Einfache Implementierung, die nicht von anderen Paketen abhängt

Deine ursprüngliche Code-Entwicklungseffizienz ist zu niedrig, schlechte Bewertung
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com