recherche

Maison  >  Questions et réponses  >  le corps du texte

Robot d'exploration Web – Le robot d'exploration Java a obtenu le lien de l'image mais ne peut pas télécharger l'image

Le code de la ressource image correspondante src obtenu par le robot en html est le suivant

Mais lorsque j'ai converti la ressource en lien via un code pour télécharger l'image, une erreur 400 a été signalée

Cependant, j'ai utilisé Chrome pour tester si le lien existe et j'ai découvert que ce que le serveur du site Web de l'autre partie peut réellement identifier est

C'est-à-dire que le lien pour obtenir des ressources d'images via la page Web est
http://www.neofactory.co.jp/i... 2.jpg
Cependant, le lien normal pour obtenir des images est
http:/ /www.neofactory.co.jp/i…

Veuillez me donner quelques conseils sur la marche à suivre. J'ai vérifié de nombreuses informations sur Internet, mais il n'y a toujours pas de solution.
ps : Ce qui est étrange, c'est que si j'utilise Firefox, le lien ci-dessus peut aussi obtenir des images, et je suis perplexe.

Code :

Image de classe publique
{

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();
    }
}

}

黄舟黄舟2775 Il y a quelques jours595

répondre à tous(2)je répondrai

  • 高洛峰

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

    Ne pouvez-vous pas simplement assembler le nom de domaine + l'attribut img src obtenu ?

    répondre
    0
  • 过去多啦不再A梦

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

    Encodage d'URL

    répondre
    0
  • Annulerrépondre