Java怎么获取网页中相对路径的绝对路径

问题描述

今天看一份报纸的网页:http://ctdsb.cnhubei.com/HTML/ctdsb/20101029/ctdsb1211884.html,想到一个问题。网页源码中图片的路径是相对路径<img src=......ctdsb20101029m_20100f01a29c_7.jpg border=0>,它的绝对路径就是这样的:<img src=http://ctdsb.cnhubei.com/ctdsb/20101029/m_20100f01a29c_7.jpg border=0>用java的HTTPConnection可以获得某个网页的源码,获得的源码里的图片是相对路径的,用Java应该怎么由......ctdsb20101029m_20100f01a29c_7.jpg来获得http://ctdsb.cnhubei.com/ctdsb/20101029/m_20100f01a29c_7.jpg呢小弟只有5分,呵呵不好意思。 问题补充:enet_java 写道

解决方案

引用enet_java 写道看来没有实践的发言可靠性比较差!!! 目录rmrb/存在两个目录 html/2010-10/30/nw.D110000renmrb_20101030_4-01.htm res/1/20101030/1288391715375_1.jpg nw.D110000renmrb_20101030_4-01.htm引入的图片相对路径就是 ../../../res/1/20101030/1288391715375_1.jpg 这样你如果要获取图片的真实路径就像你说的,应该是http://paper.people.com.cn/rmrb/res/1/20101030/1288391715375_1.jpg 所以前面的说法是不正确的,../代表了目录的深度,也就是需要根据这个../来确定图片你的真实路径,../代表需要上一级目录,有几次代表URL中从文件(nw.D110000renmrb_20101030_4-01.htm)需要向上几级目录。 然后在追加后面的部分(/res/1/20101030/1288391715375_1.jpg) 不知道能不能明白。 越来越靠谱了 问题是怎么判断相对路径中有几个../或..? 利用正则表达式就可以做到了。表达式规则:(.{2}/+)通过Matcher可以得到groupcount 然后可以将getPath获取的部分,利用/进行分割rmrb/res/1/20101030 然后就可以根据../的个数groupcount 获取到需要得到目录级别,譬如:如果是3 就是rmrb/如果是2 就是 res/可以一次类推。
解决方案二:
看来没有实践的发言可靠性比较差!!! 目录rmrb/存在两个目录 html/2010-10/30/nw.D110000renmrb_20101030_4-01.htm res/1/20101030/1288391715375_1.jpg nw.D110000renmrb_20101030_4-01.htm引入的图片相对路径就是 ../../../res/1/20101030/1288391715375_1.jpg 这样你如果要获取图片的真实路径就像你说的,应该是http://paper.people.com.cn/rmrb/res/1/20101030/1288391715375_1.jpg 所以前面的说法是不正确的,../代表了目录的深度,也就是需要根据这个../来确定图片你的真实路径,../代表需要上一级目录,有几次代表URL中从文件(nw.D110000renmrb_20101030_4-01.htm)需要向上几级目录。然后在追加后面的部分(/res/1/20101030/1288391715375_1.jpg)不知道能不能明白。
解决方案三:
一开始我理解错了,你获取的是对方的url,我理解成通过程序过获取自己的了
解决方案四:
其实这个../../../ctdsb20101029m_20100f01a29c_7.jpg 都是相对根路径的,都是这个的缩写 http://xxxx.xx.com/ctdsb/20101029/m_20100f01a29c_7.jpg 只要是可以得到http://xxxx.xx.com/ 就可以了!!context对这个的意义不大。
解决方案五:
url.getPath 获取到的就是了。
解决方案六:
引用不管 哪个 .. 有多少个 有一个 上面的url 就去掉一个 /***从最后开始算! 然后直接加在最后面 就OK ! 不太懂你的意思 他的意思就是从跟开始 ......ctdsb20101029m_20100f01a29c_7.jpg 不要考虑......,直接忽略获取到http://server:port/context/以后,之间将ctdsb20101029m_20100f01a29c_7.jpg 追加到后面就可以。
解决方案七:
看了看那,这篇文章上写的太明白了,呵呵!!LZ也参考一下吧。http://www.iteye.com/topic/117978
解决方案八:
其实和 容易就找出 个通用的办法啊引用已知网页地址 http://ctdsb.cnhubei.com/HTML/ctdsb/20101029 而图片相对与网页的地址是 src=......ctdsb20101029m_20100f01a29c_7.jpg 不管 哪个 。。/ 有多少个 有一个 上面的url 就去掉一个 /***从最后开始算! 然后直接加在最后面 就OK !
解决方案:
楼主的意思是不是想从外网链接原图片?已知网页地址http://ctdsb.cnhubei.com/HTML/ctdsb/20101029/ctdsb1211884.html是当前而图片相对与网页的地址是src=......ctdsb20101029m_20100f01a29c_7.jpg如何得到http://ctdsb.cnhubei.com/ctdsb/20101029/m_20100f01a29c_7.jpg
解决方案:
得到下面的信息 String context = request.getContextPath();String server = request.getServerName();int port = request.getServerPort();然后就可以组装据对地址的串了。

时间: 2024-09-09 22:15:34

Java怎么获取网页中相对路径的绝对路径的相关文章

java如何获取网页上的数据,怎么处理?

问题描述 java如何获取网页上的数据,怎么处理? 毕业设计需要采集一些数据,比如招聘信息,创业信息.如何把这些数据整合到自己的页面上,我用java写的毕业设计救助各位大神支招,听说有jsoup,我试了可以解析出某网站,但是不知道怎么处理,如何展示到自己的页面上,需要放到数据库吗?怎么放? 解决方案 就是通过爬虫获取数据,然后进行展示就行了,httpClient发送请求 解决方案二: JAVA中伪造referer来获取网页数据java post数据到网页java 抓取 网页 数据 解决方案三:

c#代码中, 如何获取网页中的json数据?

问题描述 c#代码中, 如何获取网页中的json数据? 用浏览器访问java的web项目, 输入网址,返回json,形如: [{'a':'1','b':'2'},{'c':'3','d':'4'}] 如何在c#代码里获取这个json串呢? 有没有现成类库或方法??? 解决方案 先用fiddler得到获取json的网址.然后用fiddler获取.用System.Runtime.Serialization.Json解析http://www.cnblogs.com/ambar/archive/2010

如何获取网页中的密码和文本输入框的内容

一.介绍 网页中的密码输入框和一般不同,它没有句柄之类的,但是通过获取IE的IHTMLInputTextElement接口,就可以获取网页中的输入框(包括文本和密码输入框)的内容了. 源代码在VC知识库首页运行效果图如下: 二.具体代码 VARIANT id, index; CComPtr<IDispatch> spDispatch; CComQIPtr<IHTMLDocument2, &IID_IHTMLDocument2> pDoc2; CComPtr<IHTML

JavaScript获取网页中第一个图片id的方法

 下面的代码通过document.images获取网页中的所有图片,然后获取第一个图片的id属性   1 2 3 4 5 6 7 8 9 10 11 12 13 <!DOCTYPE html> <html> <body> <img id="klematis lilac" border="0" src="klematis.jpg" width="148" height="112

如何获取网页中按钮的地址?

问题描述 如何获取网页中按钮的地址? 例如http://contest.i21st.cn/zhuanti/20th/final.php?from=timeline&isappinstalled=0这个网页中第8个人..恳请请答 解决方案 分析页面dom.用tag,名称等来查找.都可以找到. 解决方案二: 获取网页,直接用正则表达式提取. 解决方案三: 推荐Jsoup,可以根据html标签来提取数据内容

js-如果不用jquery,怎么用JS获取网页中指定标签内的选中内容?

问题描述 如果不用jquery,怎么用JS获取网页中指定标签内的选中内容? 网页有一个div,里面有些文字,鼠标选中其中一部分字,怎么能感知这一事件,然后返回选中内容. 解决方案 我在贴吧也看到类似的问题,是同一个吗? <!--支持IE9+ Firefox Chrome--> <p>这是一段测试文字</p> <script type='text/javascript'> function getSlct(){//获取选中文字 return getSelect

java 提取指定网页中的所有汉字

问题描述 java 提取指定网页中的所有汉字 读取这个网页中汉字 http://news.sina.com.cn/c/2015-03-24/103831638858.shtml?qq-pf-to=pcqq.c2c 有大神也个例子么 解决方案 要求要用到正则表达式 解决方案二: 如果你这个请求是固定的格式,你可以选择截取URL

android如何获取网页中特定标记之间的代码并作为字符串返回?

问题描述 android如何获取网页中特定标记之间的代码并作为字符串返回? 比如 我要获取某个网页上fhh jkl 这两个标记之间的代码 并返回该怎么弄? 解决方案 正则表达式提取 (?<=fhh).*?(?<jkl) 解决方案二: 除了用正则之外你也可以用Jsoup提取

怎样使用C#获取网页中的keywords和description

问题描述 怎样使用C#获取网页中的title,keywords和description,WinForm和WebForm均可! 解决方案 解决方案二:通过正则获取title等stringstr="";HttpWebRequestreq=(HttpWebRequest)HttpWebRequest.Create(str);HttpWebResponseres=(HttpWebResponse)req.GetResponse();StreamReadersr=newStreamReader(