2

ユーザー名とパスワードを持っている Web サイトからすべての画像をダウンロードする必要があります。たとえば、ウェブサイトの URL は http://example.co.in/images/Photos/ABC123.jpg で、画像がたくさんあるので、すべての画像をダウンロードする必要があります。Java、C++、または任意のプログラミング言語で何ができますか? サンプルコードが役に立ちます。ありがとう

次のコードを使用して、Google Web サイトから画像を取得します

import java.io.BufferedInputStream;
import java.io.ByteArrayOutputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.URL;

class Test {
public static void main(String args[]) throws Exception {
    System.out.println("Hello World");

    URL url = new URL("http://www.google.co.in/images/google_favicon_128.png");
    InputStream in = new BufferedInputStream(url.openStream());
    ByteArrayOutputStream out = new ByteArrayOutputStream();
    byte[] buf = new byte[1024];
    int n = 0;
    while (-1 != (n = in.read(buf))) {
        out.write(buf, 0, n);
    }
    out.close();
    in.close();
    byte[] response = out.toByteArray();

    FileOutputStream fos = new FileOutputStream("C://ABC//google1.jpg");
    fos.write(response);
    fos.close();

}}

画像の名前がわからない場合、拡張子が .jpg (*.jpg) のすべての画像があり、フォルダーに 1.jpg、2.jpg などとして保存する必要があります。画像の数を取得する方法とhttp://www.google.co.in/images/で画像の名前にアクセスする方法

4

5 に答える 5

6

あなたはクローラーを探しています。私は最近Scrapyを使用しましたが、使い方はかなり簡単です。

Spiderを作成するだけです。遭遇した URL ごとにオブジェクトを生成する必要がRequestあり、画像への追加の HTTP リクエストを使用してページ内の画像をダウンロードできます。

チュートリアルに従ってください。これは非常にシンプルで、クローラーの作成方法を説明し、コード例も提供して、順を追って説明します。

Scrapy は python で動作することに注意してください。

java 用のcrawl4jもあります。個人的にはあまり詳しくありませんが、とてもシンプルなものだと聞いたことがあります。

于 2013-01-02T17:04:12.153 に答える
2

Java に慣れているようです。 HtmlUnitを試してみてください。

HtmlPage.getElementsByTagName ("img")メソッドがあり、HTML 内のイメージ タグのリストが表示されます。結果に基づいて、イメージのソースの場所を取得し、テスト メソッドを使用して URL からイメージをダウンロードできます。

HTML を解析して画像タグを取得するために、 SimpleHTML ParserJTidyなどの他の HTML パーサーを使用することもできます。

于 2013-01-02T17:04:22.340 に答える
0

Linux ユーザーの場合は、コマンド ライン ツールをご覧ください。wget

Windows ユーザーは、Cygwin (http://www.cygwin.com/)経由で使用できます。

于 2013-01-02T17:01:19.200 に答える
-1

これは、非常に簡単に操作できる Web クローラー ライブラリです。

サンプルデモでは、ページ内に含まれる URL を取得する方法を示しています。

 List<WebURL> links = htmlParseData.getOutgoingUrls();

ファイルの書き込みにバイトストリームは使用しません。URI から File オブジェクトを作成し、ファイルをディスクに書き込む方法を理解することができます。

File imageFile = new File( new URL("www.foo.someImage.jpg").toURI() );

別の可能な解決策は、 ImageIO() を使用することです

URL url = new URL("www.foo.someImage.jpg");

Image image = ImageIO.read(url);

if(image != null){
   ImageIO.write(image, "jpg",new File("file path to save");
}
于 2013-01-02T17:12:17.397 に答える