之前我写过获取网页源代码的一篇
随笔,今天在获取网页源代码的基础上写一篇获取网页上某单品页上第一张大图对应的url的方法。
猫娘志是一家我很喜欢逛的网店,虽然我目前来没有在那上面买过东西(等找到对象了给对象买)。
我们在上面随便打开一个品类页(好吧,这是我精心挑的)
然后我们会发现里面有几张图,其中第一张是小青的,但是我们可以看见这张图并不是一张很大的图
因为他的url对应的是:http://gi1.md.alicdn.com/bao/uploaded/i1/T1fEEMFKVdXXXXXXXX_!!0-item_pic.jpg_430x430q90.jpg
去掉“_430x430q90.jpg”就是我们真正想要的图片了。
http://gi1.md.alicdn.com/bao/uploaded/i1/T1fEEMFKVdXXXXXXXX_!!0-item_pic.jpg
在这里展示一下最终获得的图片。
我真的不是打广告的。
Finder类中的getPictureUrl方法用于获得单品页中第一张图(qfour中单品页的第一张基本上是。。小青)。
main方法中提供测试。
代码如下:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class Finder {
public static String getPictureUrl(String urlString) throws Exception {
URL url = new URL(urlString);
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
BufferedReader reader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
String line;
while ((line = reader.readLine()) != null){
int len = line.length();
int i, j;
for(i=0;i<len && line.charAt(i)!='<';i++);
if(i + 20 < len && line.substring(i, i + 20).equals("<img id=\"J_ImgBooth\"")) {
for(i += 20;i+5<len && line.substring(i, i+5).equals("src=\"") == false;i++);
i += 5;
for(j=i;j<len && line.substring(j-4,j).equals(".jpg") == false;j++);
return line.substring(i, j);
}
}
return null;
}
public static void main(String[] args) throws Exception {
String ans = getPictureUrl("http://detail.tmall.com/item.htm?spm=a1z10.1-b.w5003-6855741104.4.kCBV2T&id=38633693340&rn=61d1213d7255e897f0ee92b43b5bc9da&scene=taobao_shop");
System.out.println(ans);
}
}
posted on 2015-02-12 14:40
marchalex 阅读(319)
评论(0) 编辑 收藏 所属分类:
java小程序