zoukankan      html  css  js  c++  java
  • 抓取RSS源中链接图片问题REDIRECT_LOCATIONS 悟寰轩

    抓取链接里的图片时通常和rss原理的url不是对应的,中间可能会有跳转,用到了如下方法:

       private String getWebRealPath(String src, String link) {
    try {
    if (src.startsWith("/")) {
    link = getRealLink(link);
    src = link.substring(0, link.indexOf("/", 7)) + src;
    }
    if (src.startsWith("./")) {
    link = getRealLink(link);
    src = link.substring(0, link.lastIndexOf("/")) + src.substring(1);
    }
    if (src.startsWith("../")) {
    link = getRealLink(link);
    String[] str = link.split("/");
    int len = src.split("\\.\\./").length;
    String s = "";
    if (link.split("/").length != 3) {
    for (int i = 0; i < str.length - len; i++) {
    s += str[i] + "/";
    }
    src = s + src.replaceAll("\\.\\./", "");
    } else {
    src = link + "/" + src.replaceAll("\\.\\./", "");
    }
    }
    } catch (Exception e) {
    return src;
    }
    return src;
    }
    private String getRealLink(String link) {
    try {
    HttpContext httpContext = new BasicHttpContext();
    HttpUtil.get(link, "iso-8859-1", httpContext);
    RedirectLocations redirectLocations = (RedirectLocations) httpContext
    .getAttribute(DefaultRedirectStrategy.REDIRECT_LOCATIONS);
    if (redirectLocations != null) {
    List uriList = redirectLocations.getAll();
    URI uri = uriList.get(uriList.size() - 1);
    link = uri.toString();
    }
    } catch (Exception e) {
    return link;
    }
    return link;
    }

     

  • 相关阅读:
    DataGrid 应用合集
    [转]UBB C#完全版
    IE 7中的快捷键
    DataGrid 单击变色,鼠标经过变色 部分代码
    17种正则表达式
    单无格内强制换行
    图片上传,并自动生成缩略图!
    layout_weight学习心得
    android 手势
    java陷进一
  • 原文地址:https://www.cnblogs.com/sunxucool/p/2800014.html
Copyright © 2011-2022 走看看