精华内容
下载资源
问答
  • -当我们需要解析图片地址字符串时,如果我们用jquery直接获取src中的地址时,输入以下代码: alert($('.img_class').attr('src')); -输出为: -解决方法:加上decodeURL(para)方法,如下所示 alert(decodeURL($('....

    -当我们需要解析图片地址字符串时,如果我们用jquery直接获取src中的地址时,输入以下代码:

    alert($('.img_class').attr('src'));

    -输出为:

    中文乱码

    -解决方法:加上decodeURL(para)方法,如下所示

    alert(decodeURL($('.img_class').attr('src')));

    此时再次渲染页面,输出为:

    中文正常不乱码

    可以看到url中的中文正常显示~

    展开全文
  • 用asp解析图片地址

    2009-01-07 22:57:00
    但是在使用过程中,如果所粘贴页中的图片被删除,就会在自己的页面上留下一个大大的“X”,影响美观。 以前只好把这个图片保存下来,再重新上传到服务器上,这样实在麻烦。能不能让服务器自动去下载图片保存在服务器...

    现在基于WEB页的HTML的编辑器在新闻系统,文章系统中用得越来越广,一个网页一粘就可以保持原来的样式,同时图片也可以在这个页中保持。但是在使用过程中,如果所粘贴页中的图片被删除,就会在自己的页面上留下一个大大的“X”,影响美观。 以前只好把这个图片保存下来,再重新上传到服务器上,这样实在麻烦。能不能让服务器自动去下载图片保存在服务器并且替换页面上的链接?答案是肯定的。
    要实现这个功能需要经过三个步骤:
    一,取得原页中的图片的地址。方法很多,可以用分割字符串,也可以用正则匹配。实践证明用正则匹配最为简单。经过分析图片的地址都保存在<img>标签中。我们可以先取得所有这个标签。过程如下:
    Set objRegExp = New Regexp'设置配置对象
    objRegExp.IgnoreCase = True’忽略大小写
    objRegExp.Global = True’设置为全文搜索
    objRegExp.Pattern = "<img.+?>"'为了确保能准确地取出图片地址所以分为两层配置:首先找到里面的<img>标签,然后再取出里面的图片地址后面的getimgs函数就是实现后一个功能的。
    strs=trim(str)
    Set Matches =objRegExp.Execute(strs)’开始执行配置
    For Each Match in Matches
     RetStr = RetStr &getimgs( Match.Value )’执行第二轮的匹配
    Next

    所有的图片在里面都是这样的src="http://图片的地址",所以可以这样来取得确切的图片地址:
    function getimgs(str)
    getimgs=""
    Set objRegExp1 = New Regexp
    objRegExp1.IgnoreCase = True
    objRegExp1.Global = True
    objRegExp1.Pattern = "http://.+?"""’取出里面的地址
    set mm=objRegExp1.Execute(str)
     For Each Match1 in mm
    getimgs=getimgs&"||"&left(Match1.Value,len(Match1.Value)-1)’把里面的地址串起来备用
    next
    end function

    取得了所有的图片的地址,我们就可以进行第二步的操作了。
    二,下载图片并保存在服务器上。这个又可以分为两个步骤:一个是取得图片的内容,另一个是保存在服务器上。取得图片的内容是通过下面的函数来实现的:
    function getHTTPPage(url)
    on error resume next
    dim http
    set http=server.createobject("MSXML2.XMLHTTP")‘使用xmlhttp的方法来获得图片的内容
    Http.open "GET",url,false
    Http.send()
    if Http.readystate<>4 then
    exit function
    end if
    getHTTPPage=Http.responseBody
    set http=nothing
    if err.number<>0 then err.Clear
    end function
    取得了图片的内容要保存,给人一种感觉是用FSO来作就可以了,但实际上不行,这样保存程序就会出错,因为FSO不支持流式的文件,所以我们要调用另一个对象:ADO.STREM。具体的过程如下:
    function saveimage(from,tofile)
    dim geturl,objStream,imgs
    geturl=trim(from)
    imgs=gethttppage(geturl)'取得图片的具休内容的过程
    Set objStream = Server.CreateObject("ADODB.Stream")'建立ADODB.Stream对象,必须要ADO 2.5以上版本
    objStream.Type =1'以二进制模式打开
    objStream.Open
    objstream.write imgs'将字符串内容写入缓冲
    objstream.SaveToFile server.mappath(tofile),2'-将缓冲的内容写入文件
    objstream.Close()'关闭对象
    set objstream=nothing
    end function
    所以只要用一个循环来把刚才取得的地址中的图片全部保存下来,具体过程如下:
    arrimg=split(retstr,"||")'分割字串,取得里面地址列表
    allimg=""
    newimg=""
    for i=1 to ubound(arrimg)
     if arrimg(i)<>"" and instr(allimg,arrimg(i))<1 then'看这个图片是否已经下载过
     fname=baseurl&cstr(i&mid(arrimg(i),instrrev(arrimg(i),".")))
     saveimage(arrimg(i),fname)‘保存地址的函数,过程见上面
      allimg=allimg&"||"&arrimg(i)'把保存下来的图片的地址串回起来,以确定要替换的地址
      newimg=newimg&"||"&fname'把本地的地址串回起来
     end if
    next
    第三步就是替换原来的地址了。具体的过程就是下面了:
    arrnew=split(newimg,"||")'取得原来的图片地址列表
    arrall=split(allimg,"||")'取得已经保存下来的图片的地址列表
    for i=1 to ubound(arrnew)'执行循环替换原来的地址
    strs=replace(strs,arrall(i),arrnew(i))
    next
    cctv=strs
    讲到这里,这个函数的基本过程就是这样了,当然可以对它进行改造就可以实现更多的功能,如:加上图片大小的限制,加上对本地机上的图片下载的限制,以免造成重复下载图片。同时也应该看到这个函数的不足之处是只能处理静态的图片文件,不能适用程序生成的图片。

    展开全文
  • 现在基于WEB页的HTML的编辑器在新闻系统,文章系统中用得越来越广,一个网页一粘就可以保持原来的样式,同时...但是在使用过程中,如果所粘贴页中的图片被删除,就会在自己的页面上留下一个大大的“X”,影响美观...
    现在基于WEB页的HTML的编辑器在新闻系统,文章系统中用得越来越广,一个网页一粘就可以保持原来的样式,同时图片也可以在这个页中保持。但是在使用过程中,如果所粘贴页中的图片被删除,就会在自己的页面上留下一个大大的“X”,影响美观。以前只好把这个图片保存下来,再重新上传到服务器上,这样实在麻烦。能不能让服务器自动去下载图片保存在服务器并且替换页面上的链接?答案是肯定的。
    要实现这个功能需要经过三个步骤:
    一,取得原页中的图片的地址。方法很多,可以用分割字符串,也可以用正则匹配。实践证明用正则匹配最为简单。经过分析图片的地址都保存在标签中。我们可以先取得所有这个标签。过程如下:
    Set objRegExp = New Regexp'设置配置对象
    objRegExp.IgnoreCase = True’忽略大小写
    objRegExp.Global = True’设置为全文搜索
    objRegExp.Pattern = ""'为了确保能准确地取出图片地址所以分为两层配置:首先找到里面的标签,然后再取出里面的图片地址后面的getimgs函数就是实现后一个功能的。
    strs=trim(str)
    Set Matches =objRegExp.Execute(strs)’开始执行配置
    For Each Match in Matches
    RetStr = RetStr &getimgs( Match.Value )’执行第二轮的匹配
    Next

    所有的图片在里面都是这样的src="http://图片的地址",所以可以这样来取得确切的图片地址:
    function getimgs(str)
    getimgs=""
    Set objRegExp1 = New Regexp
    objRegExp1.IgnoreCase = True
    objRegExp1.Global = True
    objRegExp1.Pattern = "http://.+?"""’取出里面的地址
    set mm=objRegExp1.Execute(str)
    For Each Match1 in mm
    getimgs=getimgs&"||"&left(Match1.Value,len(Match1.Value)-1)’把里面的地址串起来备用
    next
    end function

    取得了所有的图片的地址,我们就可以进行第二步的操作了。
    二,下载图片并保存在服务器上。这个又可以分为两个步骤:一个是取得图片的内容,另一个是保存在服务器上。取得图片的内容是通过下面的函数来实现的:
    function getHTTPPage(url)
    on error resume next
    dim http
    set http=server.createobject("MSXML2.XMLHTTP")‘使用xmlhttp的方法来获得图片的内容
    Http.open "GET",url,false
    Http.send()
    if Http.readystate<>4 then
    exit function
    end if
    getHTTPPage=Http.responseBody
    set http=nothing
    if err.number<>0 then err.Clear
    end function
    取得了图片的内容要保存,给人一种感觉是用FSO来作就可以了,但实际上不行,这样保存程序就会出错,因为FSO不支持流式的文件,所以我们要调用另一个对象:ADO.STREM。具体的过程如下:
    function saveimage(from,tofile)
    dim geturl,objStream,imgs
    geturl=trim(from)
    imgs=gethttppage(geturl)'取得图片的具休内容的过程
    Set objStream = Server.CreateObject("ADODB.Stream")'建立ADODB.Stream对象,必须要ADO 2.5以上版本
    objStream.Type =1'以二进制模式打开
    objStream.Open
    objstream.write imgs'将字符串内容写入缓冲
    objstream.SaveToFile server.mappath(tofile),2'-将缓冲的内容写入文件
    objstream.Close()'关闭对象
    set objstream=nothing
    end function
    所以只要用一个循环来把刚才取得的地址中的图片全部保存下来,具体过程如下:
    arrimg=split(retstr,"||")'分割字串,取得里面地址列表
    allimg=""
    newimg=""
    for i=1 to ubound(arrimg)
    if arrimg(i)<>"" and instr(allimg,arrimg(i))<1 then'看这个图片是否已经下载过
    fname=baseurl&cstr(i&mid(arrimg(i),instrrev(arrimg(i),".")))
    saveimage(arrimg(i),fname)‘保存地址的函数,过程见上面
    allimg=allimg&"||"&arrimg(i)'把保存下来的图片的地址串回起来,以确定要替换的地址
    newimg=newimg&"||"&fname'把本地的地址串回起来
    end if
    next
    第三步就是替换原来的地址了。具体的过程就是下面了:
    arrnew=split(newimg,"||")'取得原来的图片地址列表
    arrall=split(allimg,"||")'取得已经保存下来的图片的地址列表
    for i=1 to ubound(arrnew)'执行循环替换原来的地址
    strs=replace(strs,arrall(i),arrnew(i))
    next
    cctv=strs
    讲到这里,这个函数的基本过程就是这样了,当然可以对它进行改造就可以实现更多的功能,如:加上图片大小的限制,加上对本地机上的图片下载的限制,以免造成重复下载图片。同时也应该看到这个函数的不足之处是只能处理静态的图片文件,不能适用程序生成的图片。


    来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10294527/viewspace-124594/,如需转载,请注明出处,否则将追究法律责任。

    转载于:http://blog.itpub.net/10294527/viewspace-124594/

    展开全文
  • 使用Jsoup解析网页。在项目中,通过浏览器访问网址点击“下一页”能正常翻页,而Android客户端每次GET的“下一页”地址都是第一页。原来是因为android客户端向网站发送HTTP请求时,没有在请求头部设置JSESSIONID,而...
    一、使用Jsoup解析网页

    <pre><code class="prettyprint"><span class="typ">Document</span><span class="pln"> doc </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Jsoup</span><span class="pun">.</span><span class="pln">connect</span><span class="pun">(</span><span class="str">url</span><span class="pun">).</span><span class="kwd">get</span><span class="pun">();</span><span class="pln">
    </span></code>
    
    

    二、Session保持

    在项目中,通过浏览器访问网址点击“下一页”能正常翻页,而Android客户端每次GET的“下一页”地址都是第一页。原来是因为android客户端向网站发送HTTP请求时,没有在请求头部设置JSESSIONID,而使用浏览器访问服务器时,在客户端每次发起请求的时候,都会将JSESSIONID设置在Cookie头中携带过去。因此可以在第一次数据请求时就获取sessionid的值并保存在一个静态变量中,然后将其打包在后续HTTP请求的Cookie中发给服务器,服务器根据这个JSESSIONID获取对应的Session,而不是重新创建一个新Session。当然,也可以直接将第一次数据请求时获取的cookies整个打包回去:

    <span style="font-size:12px;"></span><pre name="code" class="java"><span style="font-size:12px;">Connection.Response res= Jsoup.connect(url)
    		         .method(Method.GET)
    			 .execute();</span>
    Document doc= Jsoup.connect(url) .cookies(res.cookies()) .timeout(10000) .get();
    
    

    三、标签解析

    由于项目网站所需要解析的图片标签特有width=100%这种属性,因此可通过以下方式解析出图片地址并加载图片:

    <span style="font-size:12px;"> Elements element = doc.select("img").select("[width=100%]"); // 具有 href 属性的链接
         	      Log.d("element", element.toString());
         	      for(Element links : element)
         	      { 
         	    	  String link  = links.attr("src");
         	    	  try {
         	    		  myFileUrl = new URL(link);
         	    	  } catch (MalformedURLException e) {
         	    		 Log.i("msg", "没有数据");
         	    	  }
         	    	  try {
         	    		   HttpURLConnection conn = (HttpURLConnection) myFileUrl.openConnection();
         	    		   conn.setConnectTimeout(0);
         	                   conn.setDoInput(true);
         	                   conn.connect();
         	                   InputStream is = conn.getInputStream();
         	                   bitmap = BitmapFactory.decodeStream(is);
         	                   is.close();
         	          } catch (IOException e) {
         	        	 Log.i("msg", "没有数据");
         	          }
         	                   PicListInfo pi = new PicListInfo();
         	                   pi.setPicUrl(bitmap);
         	                   newpiclistinfo.add(0,pi);                    
         	          }
    	</span>

    四、listview+adapter显示图片

    <span style="font-size:12px;">if(newpiclistinfo.size() > 0){
    			Collections.reverse(newpiclistinfo);
    		        piclistinfo.addAll(newpiclistinfo);
    			sla.notifyDataSetChanged();	
    			piclist.setDividerHeight(0);
    			if(dlg_loading.isShowing()){
    			dlg_loading.cancel();
    			}
    			}else
    			{
    				Log.i("msg", "没有数据");
    			}
    		  </span>
    由于网站每页只显示4张图片,一共有8页,因此在加载完前四张后需要保持session并模拟浏览器的“翻页”:

    <span style="font-size:12px;">if(count<8){
    		      Element next=doc.getElementById("toNext");
    		      String next_url=next.attr("href");//“下一页”的url
    		      getpic(next_url);//调用图片加载的异步线程
    		      }
    		   else{
    			   Log.i("msg", "加载完毕");
    			   Toast.makeText(getApplicationContext(), "已全部加载",
    			    		  Toast.LENGTH_SHORT).show();
    		   }</span>
    附图片加载的完整线程:

    <span style="font-size:12px;">	public void getpic(String url){
    		new HTMLAsyncTask().execute(url);	
    	}
     private class HTMLAsyncTask extends AsyncTask<String, Integer, ArrayList<PicListInfo>> {
        	 Document doc = null;
        protected ArrayList<PicListInfo> doInBackground(String... Urls) {
        	 URL myFileUrl = null;
             Bitmap bitmap = null;      
             ArrayList<PicListInfo> newpiclistinfo = new ArrayList<PicListInfo>();
        	try {	
        		String test=res.cookies().toString();
        		doc= Jsoup.connect(Urls[0])
           	   			 .cookies(res.cookies())
           	   			 .timeout(10000)
           	   			 .get(); 
         	      Elements element = doc.select("img").select("[width=100%]"); // 具有 href 属性的链接
         	      Log.d("element", element.toString());
         	      for(Element links : element)
         	      { 
         	    	  String link  = links.attr("src");
         	    	  try {
         	    		  myFileUrl = new URL(link);
         	    	  } catch (MalformedURLException e) {
         	    		 Log.i("msg", "没有数据");
         	    	  }
         	    	  try {
         	    		   HttpURLConnection conn = (HttpURLConnection) myFileUrl.openConnection();
         	    		   conn.setConnectTimeout(0);
         	               conn.setDoInput(true);
         	               conn.connect();
         	               InputStream is = conn.getInputStream();
         	               bitmap = BitmapFactory.decodeStream(is);
         	               is.close();
         	          } catch (IOException e) {
         	        	 Log.i("msg", "没有数据");
         	          }
         	              PicListInfo pi = new PicListInfo();
         	              pi.setPicUrl(bitmap);
         	              newpiclistinfo.add(0,pi);                    
         	          }
    	
            }catch (IOException e) {
    			// TODO Auto-generated catch block
            	Log.i("msg", "没有数据");
    		}
        	
    		return newpiclistinfo;
                
        }
        // 异步方法调用对返回的字符串进行处理
        protected void onPostExecute(ArrayList<PicListInfo> newpiclistinfo) {
          try {
    		count++;	
    		  if(newpiclistinfo.size() > 0){
    			Collections.reverse(newpiclistinfo);
    		    piclistinfo.addAll(newpiclistinfo);
    			sla.notifyDataSetChanged();	
    			piclist.setDividerHeight(0);
    			if(dlg_loading.isShowing()){
    			dlg_loading.cancel();
    			}
    			}else
    			{
    				Log.i("msg", "没有数据");
    			}
    		  
    		   if(count<8){
    		      Element next=doc.getElementById("toNext");
    		      String next_url=next.attr("href");
    		      getpic(next_url);
    		      }
    		   else{
    			   Log.i("msg", "加载完毕");
    			   Toast.makeText(getApplicationContext(), "已全部加载",
    			    		  Toast.LENGTH_SHORT).show();
    		   }
    	} catch (Exception e) {
    		Toast.makeText(getApplicationContext(), "网络连接出错啦",
        		  Toast.LENGTH_SHORT).show();
    	}
    			                 
        }
           } </span>



    展开全文
  • 但是在使用过程中,如果所粘贴页中的图片被删除,就会在自己的页面上留下一个大大的“X”,影响美观。以前只好把这个图片保存下来,再重新上传到服务器上,这样实在麻烦。能不能让服务器自动去下载图片保存在服务器...
  • 但是在使用过程中,如果所粘贴页中的图片被删除,就会在自己的页面上留下一个大大的“X”,影响美观。以前只好把这个图片保存下来,再重新上传到服务器上,这样实在麻烦。能不能让服务器自动去下载图片保存在服务器...
  • 但是在使用过程中,如果所粘贴页中的图片被删除,就会在自己的页面上留下一个大大的“X”,影响美观。以前只好把这个图片保存下来,再重新上传到服务器上,这样实在麻烦。能不能让服务器自动去下载图片保存在服务器...
  • 但是在使用过程中,如果所粘贴页中的图片被删除,就会在自己的页面上留下一个大大的“X”,影响美观。以前只好把这个图片保存下来,再重新上传到服务器上,这样实在麻烦。能不能让服务器自动去下载图片保存在服务器...
  • 但是在使用过程中,如果所粘贴页中的图片被删除,就会在自己的页面上留下一个大大的“X”,影响美观。以前只好把这个图片保存下来,再重新上传到服务器上,这样实在麻烦。能不能让服务器自动去下载图片保存在服务器...
  • 但是在使用过程中,如果所粘贴页中的图片被删除,就会在自己的页面上留下一个大大的“X”,影响美观。以前只好把这个图片保存下来,再重新上传到服务器上,这样实在麻烦。能不能让服务器自动去下载图片保存在服务器...
  • 最近闲来无事用了聚合的api写着玩玩,然而死活加载不出来图片,把地址直接放在浏览器中打开是可以显示图片的,写死地址也是可以显示图片的,然而在代码中就是不显示,就是不显示,就是不显示…..为此我还请公司的...
  • 是因为一直依赖于第三方api的话 如果api挂掉 那么业务就出于瘫痪的状态 ...为了验证是否正确 我将一个图片地址放到草料解析的网站出来的结果 进行对比 发现是一模一样的结果! 类库自取地址:https://downloa...
  • 今天项目中用到了富文本编辑器,而且要求把富文本中的图片获取存到数据库中。查阅资料后总结一下解决方案 1.用jsoup工具获取整个页面的html,然后根据标签的类取html中的img标签,然后获取img标签的src属性。 2.前台...
  • 在用户控件中直接使用html的标签将导致找不到图片, 一般的解决办法是使用服务器端控件,在ImageUrl 设置"~/images/red.png",这样就可以...分析发现,无论调用都在哪个层次,地址始终被解析成了 src="../images/red
  • webview 解析 ...解析webview内的商品图片地址,店铺头像 定义内部类 Hand class Hand { @JavascriptInterface public void getImageurl(String data){ // Log.e("网页内容", data); Document document=
  • <div><p>内容编辑器的单图(...前台解析图片的URL错误地址演示: <img src="/images/2017/7/523201315.jpg" title="1.jpg" alt="1.jpg" /></p>该提问来源于开源项目:siteserver/cms</p></div>
  • http://blog.csdn.net/guolin_blog/article/details/53759439  源码分析、用法 https://github.com/ls20lzy/glide-transformations  加载出不同样式的图片
  • 原理分析从快手App拿到视频分享链接在浏览器中访问,比如地址 https://f.kuaishou.com/1mqmxe 然后会重定向,打开浏览器控制台点击左上角的手机图片,刷新模拟手机请求,观察控制台源码可以看到下面的一段代码里包含...
  • 使用zxing解析二维码图片

    千次阅读 2016-12-19 17:08:02
    使用zxing技术,通过图片地址和传图片BufferedImage的方式解析二维码图片,并把解析结果返回。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,155
精华内容 862
关键字:

解析图片地址