Heim > Fragen und Antworten > Hauptteil
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();
}
}
}