Webcrawler – Der Java-Crawler hat den Bildlink erhalten, kann das Bild jedoch nicht herunterladen
黄舟
黄舟 2017-05-17 10:01:58
0
2
606

Der vom Crawler in HTML erhaltene Code der entsprechenden Bildressource src lautet wie folgt

Aber als ich die Ressource per Code in einen Link umwandelte, um das Bild herunterzuladen, wurde ein 400-Fehler gemeldet

Allerdings habe ich Chrome verwendet, um zu testen, ob der Link existiert, und festgestellt, dass der Website-Server der anderen Partei tatsächlich

erkennen kann

Das heißt, der Link zum Abrufen von Bildressourcen über die Webseite lautet
http://www.neofactory.co.jp/i... 2.jpg
Der normale Link zum Abrufen von Bildern lautet jedoch
http:/ /www.neofactory.co.jp/i…

Bitte geben Sie mir eine Anleitung, was als nächstes zu tun ist. Ich habe viele Informationen im Internet überprüft, aber es gibt immer noch keine Lösung.
ps: Das Seltsame ist, dass wenn ich Firefox verwende, über den obigen Link auch Bilder abgerufen werden können, und ich bin verwirrt.

Code:

öffentliches Klassenbild
{

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

}

黄舟
黄舟

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

Antworte allen(2)
小葫芦

直接把域名+获取的img src属性拼起来不行么

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage