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
黄舟
黄舟 2017-05-17 10:01:58
0
2
518

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

}

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

répondre à tous(2)
小葫芦

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

过去多啦不再A梦

Encodage d'URL

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!