得到背景图象道路的Jsoup从css

时间:2013-08-06 08:22:44

标签: java jsoup

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

为此目的,我需要找到css中的那些:例如:

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

现在我的问题是如何通过JSoup获取所有这些网址?

到目前为止,我尝试了以下内容:

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

但到目前为止没有运气。

有谁知道我怎么能实现它?

3 个答案:

答案 0 :(得分:3)

Jsoup无法解析css文件。

请查看this,了解Jsoup负责的内容。

您需要一个单独的css解析器从url文件中提取css。看看this

答案 1 :(得分:0)

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

答案 2 :(得分:-2)

如果您想选择网站上所有图片的网址,您可以选择所有图片代码,然后获取绝对网址。

示例:

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。