4

特定のWebサイトですべての画像を探しています。

この目的のために、たとえば css 内にあるものを見つける必要があります。

   .gk-crop {
    background-image: url("../images/style1/g_rss-2.png");
}

ここで私の質問は、JSoup でこれらの URL をすべて取得するにはどうすればよいですか?

これまでのところ、次のことを試しました:

    Document doc = Jsoup.connect(url).get();
    Elements imagePath = doc.select("[src]");
    imagePath.select("*[style*='background-image']");

しかし、これまでのところ運がありません。

誰も私がそれを達成する方法を知っていますか?

4

3 に答える 3

4

Jsoup css ファイルを解析しません。

これを見て、何Jsoupが原因かを確認してください。

ファイルurlから抽出するには、別の css パーサーが必要です。これcssを見てください

于 2013-08-06T11:03:23.933 に答える
0

Niranjan が述べたように、Jsoup は CSS ではなく XML を解析するためのものです。CSS からいくつかの画像を抽出する必要がある場合は、その目的のためにサードパーティのライブラリを使用するか、CSS ファイルから URL を取得するための単純な正規表現を作成する必要があります。これは問題に対する柔軟な解決策ではありませんが、最速の解決策になります:)

于 2013-08-06T15:05:00.273 に答える
-3

Web サイト上のすべての画像の URL を選択する場合は、すべての画像タグを選択してから絶対 URL を取得できます。

例:

String html = "http://www.bbc.co.uk";
Document doc = Jsoup.connect(html).get();

Elements titles = doc.select("img");

for (Element e : titles) {
    System.out.println(e.absUrl("src"));
}

<img>すべての要素を取得して表示します。

http://sa.bbc.co.uk/bbc/bbc/s?name=SET-COUNTER&pal_route=index&ml_name=barlesque&app_type=web&language=en-GB&ml_version=0.16.1&pal_webapp=wwhp&blq_s=3.5&blq_r=3.5&blq_v=default-worldwide
http://static.bbci.co.uk/frameworks/barlesque/2.50.2/desktop/3.5/img/blq-blocks_grey_alpha.png
http://static.bbci.co.uk/frameworks/barlesque/2.50.2/desktop/3.5/img/blq-search_grey_alpha.png
http://news.bbcimg.co.uk/media/images/69139000/jpg/_69139104_69139103.jpg
http://news.bbcimg.co.uk/media/images/69134000/jpg/_69134575_waynerooney1.jpg

.JPG ファイルのみが必要な場合は、含めることでセレクターに伝えます。

Elements titles = doc.select("img[src$=.jpg]");

その結果、.JPG-url のみが解析されます。

于 2013-08-06T14:46:33.937 に答える