4

我正在寻找给定网站上的所有图像。

为此,我需要找到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原因了。

您需要一个单独的 css 解析器来urlcss文件中提取。看看这个

于 2013-08-06T11:03:23.933 回答
0

就像 Niranjan 提到的那样,Jsoup 不是用于解析 CSS,而是用于解析 XML。如果你真的需要从 CSS 中提取一些图像,你需要使用一些 3rd 方库来达到这个目的,或者编写简单的正则表达式来从 CSS 文件中获取 URL——它仍然是纯文本,不是吗?这不是您问题的灵活解决方案,但它会是最快的解决方案:)

于 2013-08-06T15:05:00.273 回答
-3

如果要选择网站上所有图像的 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-urls。

于 2013-08-06T14:46:33.937 回答