この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 32261|答える: 11

[JavaSE] Javaで書かれたクローラーは、今や画像(深さ1)しかダウンロードできませんが、今後も続きます...

[リンクをコピー]
掲載地 2015/06/03 2:38:12 | | | |
タイトルが示す通り

crawler.rar (62.53 KB, ダウンロード数: 5, 販売価格: 2 グレインMB)




先の:asp.net どんなウェブコンテナを持っているか知っていますか? IISを除いて
次に:データの重複を消してコレクションを返す
掲載地 2015/06/03 21:05:36 |
他のパッケージに依存しないシンプルな実装です

  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. }
コードをコピーします
掲載地 2015/06/04 19:19:48 |
Delver_Si 2015-6-3 23:57に投稿
元のコード開発の効率が低すぎる、悪いレビューです

何も言いたくなかったけど、開発は非効率だと言ってたよね。。。。。

このプログラムはコードの品質と性能を求めており、結局のところ機能が少なく、拡張能力も性能も低い


10回連続で実行し、ネットワークの遅延を毎回無視し、ローカルセーブも無視し、HTMLドキュメントの解析時間だけを計算すれば、あなたのプログラムはそれからほど遠いです。
また、あなたのコードには誤りがあるので、何も言いません

掲載地 2015/06/03 13:00:52 |
Delver_Si 2015年6月3日 12:57に投稿
研究の内容はどうですか?

Eclipseはインストールせず、メモ帳で確認し、まずウェブページのHTMLソースコードを取得し、srcの後に値を取得して保存しました   

それが正しいのか分かりません  
掲載地 2015/06/03 7:49:23 |
PNG形式の画像は取得できますか?
 地主| 掲載地 2015/06/03 10:17:34 |

はい、今はサフィックスを判断していません。すべてjpgとして保存しています。実際、png画像はjpgサフィックスで開けることができ、サフィックスを改善します
掲載地 2015/06/03 12:52:13 |
研究を勉強させてください
 地主| 掲載地 2015/06/03 12:57:13 |
小さなスラグ 2015年6月3日 12:52に投稿
研究を勉強させてください

研究の内容はどうですか?
 地主| 掲載地 2015/06/03 13:05:27 |
シャオ・ジャザ 2015-6-3 13:00 投稿
Eclipseをインストールしずにメモ帳で確認し、まずウェブページのHTMLソースコードを取得し、srcの後に値を取得し、ラフ...

それは確かにそうです
掲載地 2015/06/03 21:12:09 |
microxdd 2015年6月3日 21:05 投稿
他のパッケージに依存しないシンプルな実装です

このリズムが私にMyeclipseをインストールしさせているのです!
 地主| 掲載地 2015/06/03 23:57:27 |
microxdd 2015年6月3日 21:05 投稿
他のパッケージに依存しないシンプルな実装です

元のコード開発の効率が低すぎる、悪いレビューです
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com