我有下面的代码,我正在使用从flipkart网站的图片,所有的工作都很好,但我不知道为什么它只是检索前四个图片,而不是所有的图片出现在网页上。帮助我排序这一个
import org.jsoup.Jsoup;
import org.jsoup.helper.Validate;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;
/**
* Example program to list links from a URL.
*/
public class FlipkartFetcher {
static String folderPath="C:\\Users\\Nobal\\Desktop\\MyImages";
public static void main(String[] args) throws IOException {
// Validate.isTrue(args.length == 1, "usage: supply url to fetch");
//String url = args[0];
String url="http://www.flipkart.com/mens-clothing/shirts/formal-shirts/pr?sid=2oq%2Cs9b%2Cmg4%2Cfh5&otracker=nmenu_sub_men_0_Formal+Shirts";
//print("Fetching %s...", url);
Document doc = Jsoup.connect(url).get();
Elements divTags=doc.getElementsByClass("pu-visual-section");
int counter=0;
for(Element divTag : divTags)
{
counter++;
//System.out.println(image.getElementsByTag("a"));
Elements aTags=divTag.getElementsByTag("a");
for(Element aTag : aTags )
{
if(aTag.child(0).attr("src").contains(".jp")){
System.out.println(aTag.child(0).attr("src"));
getImages(aTag.child(0).attr("src"));
}
}
}
/* Elements links = doc.select("a[href]");
Elements media = doc.select("[src]");
Elements imports = doc.select("link[href]");
print("\nMedia: (%d)", media.size());
for (Element src : media) {
if (src.tagName().equals("img"))
print(" * %s: <%s> %sx%s (%s)",
src.tagName(), src.attr("abs:src"), src.attr("width"), src.attr("height"),
trim(src.attr("alt"), 20));
else
print(" * %s: <%s>", src.tagName(), src.attr("abs:src"));
}
print("\nImports: (%d)", imports.size());
for (Element link : imports) {
print(" * %s <%s> (%s)", link.tagName(),link.attr("abs:href"), link.attr("rel"));
}
print("\nLinks: (%d)", links.size());
for (Element link : links) {
print(" * a: <%s> (%s)", link.attr("abs:href"), trim(link.text(), 35));
}*/
}
private static void getImages(String src) throws IOException {
String folder = null;
//Exctract the name of the image from the src attribute
int indexname = src.lastIndexOf("/");
if (indexname == src.length()) {
src = src.substring(1, indexname);
}
indexname = src.lastIndexOf("/");
String name = src.substring(indexname, src.length());
System.out.println(name);
//Open a URL Stream
URL url = new URL(src);
InputStream in = url.openStream();
OutputStream out = new BufferedOutputStream(new FileOutputStream( folderPath+ name));
for (int b; (b = in.read()) != -1;) {
out.write(b);
}
out.close();
in.close();
}
/* private static void print(String msg, Object... args) {
System.out.println(String.format(msg, args));
}
private static String trim(String s, int width) {
if (s.length() > width)
return s.substring(0, width-1) + ".";
else
return s;
}*/
}
因为某些图像不是在src
中找到的,而是在data-src
标记中找到的。调整后的代码(Java 8):
for (Element divTag : divTags) {
Elements aTags = divTag.getElementsByTag("a");
aTags.stream()
.filter(aTag -> aTag.child(0).attr("data-src").contains(".jp"))
.forEach(aTag -> {
System.out.println(aTag.child(0).attr("data-src"));
});
aTags.stream()
.filter(aTag -> aTag.child(0).attr("src").contains(".jp"))
.forEach(aTag -> {
System.out.println(aTag.child(0).attr("src"));
});
}
我正在尝试使用jSoup刮一个网站,有以下内容。我对jSoup很陌生,还在想办法。我想做的是能够采取的产品名称和价格,并把他们放入一个excel文件的名称在A列和价格在B列,0.00可以忽略或放在C列,无论什么更容易。任何帮助都将是伟大的,因为我知道有人会问,这不是一个家庭作业。 谢谢提前,我真的很感激。 **这是否是表元素,因为这是列表前的“表”代码,如果不是,我应该在html代码中查找什么?
最近我一直在用Python和靓汤学习网页刮刮乐。然而,当我试图刮下下面的页面时,我遇到了一点麻烦: http://www.librarything.com/work/3203347 我想从页面上得到的数据是这本书的标签,但我找不到任何方法来获取数据,尽管我花了很多时间在网上拖网。 我试着在网上看了几本指南,但似乎没有一本奏效。我尝试将页面转换为XML和JSON,但仍然找不到数据。 我现在有点手足无
最近,我一直试图从一个网站上获取大量的定价,从一个页面开始,每个项目的页面都链接到起始页面。我希望运行一个脚本,允许我单击某个项目的框,删除该项目的定价和描述,然后返回起始页并继续该循环。然而,有一个明显的问题,我在刮掉第一件物品后遇到了。返回起始页后,容器没有定义,因此出现了一个陈旧的元素错误,该错误会中断循环并阻止我获取其余的项。这是我使用的示例代码,希望能够一个接一个地刮去所有项目。 然而,
我需要一些关于使用python来删除站点中的一些数据属性的帮助。我尝试过使用和但没有成功,我在网上找到了一些关于使用beautiful Soup的文章。唯一的问题是我不知道怎么做。 这是我要刮的。 我正在尝试获得值,但我不知道如何获得。希望有人能帮忙。 问候, 哈扎
已解决 通过使用HTMLUnit并在打印页面前停止一段时间,我让它打印缺少的内容
新编码器来了。一段时间以来,我一直试图在一个非常基于java的网站上删除一段文本,现在使用Selenium。我不知道这一点我做错了什么。 试图刮取的元素的图像: 我试图在这个容器中刮取那个美元金额,这样我最终就可以在我正在构建的每日报告中使用它。 以下是网站链接:https://explorer.helium.com/accounts/13pm9jur7wpjaf7evwgq5eqaartppu2