cari

Rumah  >  Soal Jawab  >  teks badan

Perangkak web - Perangkak Java telah memperoleh pautan imej tetapi tidak boleh memuat turun imej

Kod src sumber imej yang sepadan yang diperolehi oleh perangkak dalam html adalah seperti berikut

Tetapi apabila saya menukar sumber kepada pautan melalui kod untuk memuat turun imej, ralat 400 telah dilaporkan

Walau bagaimanapun, saya menggunakan chrome untuk menguji sama ada pautan itu wujud dan mendapati bahawa pelayan tapak web pihak lain benar-benar boleh mengenal pasti adalah

Maksudnya, pautan untuk mendapatkan sumber imej melalui halaman web ialah
http://www.neofactory.co.jp/i... 2.jpg
Namun, pautan biasa untuk mendapatkan imej ialah
http:/ /www. neofactory.co.jp/i…

Sila beri saya panduan tentang perkara yang perlu saya lakukan seterusnya. Saya telah menyemak banyak maklumat di Internet, tetapi masih tiada penyelesaian.
ps: Yang peliknya kalau saya guna Firefox, link di atas pun boleh dapat gambar, dan saya hairan.

Kod:

Imej kelas awam
{

private String urlNeo="";
public String getUrlNeo() {
    return urlNeo;
}
public void setUrlNeo(String urlNeo) {
    this.urlNeo = urlNeo;
}
public String getHtml() throws Exception{
    ArrayList<String> list=new ArrayList<String>();    
    String line="";
    String Html="";
    URL url=new URL(urlNeo);
    URLConnection connection=url.openConnection();
    InputStream in=connection.getInputStream();
    InputStreamReader isr=new InputStreamReader(in);
    BufferedReader br=new BufferedReader(isr);
    while((line=br.readLine())!=null){
        Html+=line;
        list.add(line);
    }
    br.close();
    isr.close();
    in.close();
    return Html;
}
public String getImgSrc() throws Exception{
    String html=getHtml();
    String IMGURL_REG_xpath="//p[1]/p[2]/p[2]/p/node()";
    String imginfomation="";
    JXDocument jxDocument = new JXDocument(html);
    imginfomation=(jxDocument.sel(IMGURL_REG_xpath).toString()).substring(1,jxDocument.sel(IMGURL_REG_xpath).toString().length() - 1);
    return imginfomation;
}
public List<String> getImgXpath() throws Exception{
    String str="";
    String IMGSRC_REG = "img.product.\w.*.jpg";
    List<String> list1=new ArrayList<String>();
    List<String> list2=new ArrayList<String>();
    String listimg = getImgSrc();
    Matcher matcher = Pattern.compile(IMGSRC_REG).matcher(listimg);
    while (matcher.find()) {
        list1.add(matcher.group());
    }
    for(int i=1;i<=(list1.size()/2);i++){
        int j=i*2;
        list2.add(list1.get(j-1));
    }
    return list2;
}
public void download(String admin_no) throws Exception{
    List<String> list=new ArrayList<String>();
    list=getImgXpath();
    for(String img:list){
        System.out.println(img);
        String url="http://www.neofactory.co.jp/"+img;
        URL uri=new URL(url);
        URLConnection con=uri.openConnection();
        con.setConnectTimeout(5000);
        InputStream in=con.getInputStream();
        
        byte[] buf=new byte[1024];
        int length=0;            
        File sf=new File("D:\item_neo_photo\"+admin_no);
        if(!sf.exists()){
            sf.mkdirs();
        }
        String[] a=img.split("/");
        OutputStream os=new FileOutputStream(sf.getPath()+"\"+a[a.length-1]);
        
        while((length=in.read(buf))!=-1){
            os.write(buf, 0, length);
        }
        
        os.close();
        in.close();
    }
}

}

黄舟黄舟2741 hari yang lalu569

membalas semua(2)saya akan balas

  • 高洛峰

    高洛峰2017-05-17 10:03:58

    Tidakkah anda boleh meletakkan nama domain + atribut img src yang diperolehi bersama-sama?

    balas
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-17 10:03:58

    Pengekodan URL

    balas
    0
  • Batalbalas