/**
* 将不完整的网址转换成完整网址
* <pre>
* example:
* sourceUrl = "http://www.wed114.cn/jiehun/shishanghunli/hunlicehua/";
* toConvertUrl = "/jiehun/shishanghunli/hunlicehua/201106/1496.html";
* latestUrl = "http://www.wed114.cn/jiehun/shishanghunli/hunlicehua/201106/1496.html";
* 注level可选
* level = 1; (默认) prefixUrl = "http://www.wed114.cn";
* level = 2; prefixUrl = "http://www.wed114.cn/jiehun";
* 如果待转换地址为"./"之类的使用上级的地址,直接去掉"."
* 如果待转换的为完整的网址直接返回待转换网址
* </pre>
* @param sourceUrl 当前资源网址
* @param toConvertUrl 抓取的待转换的网址
* @param level 取地址第几级(可选)
* @return latestUrl 完整的网址
* @author chitianxiang $9th April, 2012 - 10:45 a.m
*/
private static String getFullurl(String sourceUrl, String toConvertUrl, int... level) {
String prefixUrl = sourceUrl; //前缀地址
String latestUrl = toConvertUrl; //最终地址
int srcLevel = 1;
if (level.length > 0) {
srcLevel = level[0];
}
//如果不是http://开头
if (toConvertUrl.toLowerCase().indexOf("http://") == -1) {
int endIndex = -1;
//srcLevel + 2 中 2表示http中的//
try {
endIndex = EmpInfoGrabUtil.indexOf(sourceUrl, '/', srcLevel + 2);
} catch (Exception e){
e.printStackTrace();
System.out.println("完整地址转换出现异常!!!");
return " ";
}
if (endIndex != -1) {
prefixUrl = sourceUrl.substring(0, endIndex);
}
while (toConvertUrl.startsWith(".")) {
toConvertUrl = toConvertUrl.substring(1);
}
if (!toConvertUrl.startsWith("/")) {
toConvertUrl = "/" + toConvertUrl;
}
latestUrl = prefixUrl + toConvertUrl;
}
return latestUrl;
}
/**
* 在字符串中查询指定第几个字符的索引
* @param str 源字符串
* @param c 待搜索目标字符
* @param charNum 第几个目标字符
* @return 符合要求的目标字符位置
* @author chitianxiang $9th April, 2012 - 10:25 a.m
*/
private static int indexOf(String str, char c, int charNum) {
int index = -1; //目标位置
int count = 0; //第几个目标
if (str == null || str.length() == 0) {
return -1;
}
if (charNum <= 0) {
throw new IllegalArgumentException("第几个目标必须为正整数");
}
for (int i = 0, len = str.length(); i < len; i++) {
if (str.codePointAt(i) == c) {
count++;
}
if (count == charNum) {
index = i;
break;
}
}
if (charNum > count) {
throw new IndexOutOfBoundsException("设置第几个目标过长,没有那么多目标");
}
return index;
}
运用:
String sourceUrl = "http://www.wed114.cn/jiehun/shishanghunli/hunlicehua/";
String toConvertUrl = "/jiehun/shishanghunli/hunlicehua/201106/1496.html";
getFullurl(sourceUrl, toConvertUrl);
http://www.wed114.cn/jiehun/shishanghunli/hunlicehua/201106/1496.html
String sourceUrl = "http://www.wed114.cn/jiehun/shishanghunli/hunlicehua/";
String toConvertUrl = "/shishanghunli/hunlicehua/201106/1496.html";
getFullurl(sourceUrl, toConvertUrl, 2);
http://www.wed114.cn/jiehun/shishanghunli/hunlicehua/201106/1496.html
分享到:
相关推荐
该程序用VC6.0语言编写,输入网址后,抓取网址内容。
抓取商品工具能抓取各网店平台的商品数据,商品详细的描述,商品图片,一次性抓取到自己的店铺,省时省力!数据包处理,可以将淘宝的数据包转换为拍拍的数据包,也可以将拍拍的数据包转换为淘宝的数据包!
js跳转不影响蜘蛛抓取,js跳转的影响很大的所以要加代码
网址抓取器URLCapturer.5.0.zip
spliter 数据抓取数据抓取数据抓取数据抓取数据抓取数据抓取数据抓取数据抓取数据抓取数据抓取数据抓取数据抓取数据抓取数据抓取
是一个开放源码网页数据抓取工具,比如网上有很多数据不想手动去记录,可以借助此工具,更改想抓取的网址及规则,获取想要的数据。
输入网址抓取目标网站样式,在开发过程中想要引用或者模仿其余网站的一些样式,可以使用该工具,使用方法,解压文件后打开仿站小工具.exe,输入网址和需要保存的文件的相对路径即可,部分网站不支持
C#抓取当前桌面完整信息源码(最低分分享)
数据抓取解决方案数据抓取解决方案数据抓取解决方案数据抓取解决方案
C#抓取当前桌面完整信息源码(0515)
《机械臂抓取从入门到实战》课程视频及配套资料 1.1 机械臂抓取应用场景及行业发展 1.2 机械臂抓取主流方案 1.3 3D相机硬件测距原理介绍 1.4 ROS开发环境介绍 1.5 开发环境搭建 2.1 创建ROS工作空间及功能包 2.2 ...
Java爬虫,信息抓取的实现 详细完整源码实例打包给大家,需要的可以下载下载学习!!!
很实用的颜色抓取工具,可以多形式抓取屏幕上任何一点的颜色,RGB 等形式。欢迎使用
目前绝大多数的网站,仅提供FLASH播放,而不能下载,对于一些自已喜爱的精美FLASH歌曲或游戏,无法做到保存,《网页FALSH抓取器》能非常方便的抓取网页中的FLASH,只要一个FLASH曾在IE浏览器中播放过,它就能保存下来...
抓取链路层数据包
机械臂抓取程序
该工具集成了各大常见蜘蛛UA,模拟这些蜘蛛UA访问抓取网站,目前网络上很流行蜘蛛挂马,通过该工具模拟访问可以分析网站是否被挂针对搜索引擎的挂马,可以模拟蜘蛛查看源码。 用法也很简单,打开以后输入目标地址,...