Nutch爬虫解决页面相对路径问题
2019独角兽企业重金招聘Python工程师标准>>>
修改LinkDb.java的map方法,对页面取到的outlink进行解析
import com.sun.org.apache.xml.internal.utils.URI.MalformedURIException;
import com.sun.org.apache.xml.internal.utils.URI;
Inlinks inlinks = new Inlinks();
URI baseUri = new URI(fromUrl);
URI absoluteUri = null;
for (int i = 0; i < outlinks.length; i++) {
Outlink outlink = outlinks[i];
String toUrl = outlink.getToUrl();
if (ignoreInternalLinks) {
String toHost = getHost(toUrl);
if (toHost == null || toHost.equals(fromHost)) { // internal link
continue; // skip it
}
}
if (urlNormalizers != null) {
try {
toUrl = urlNormalizers.normalize(toUrl, URLNormalizers.SCOPE_LINKDB); // normalize the url
} catch (Exception e) {
LOG.warn("Skipping " + toUrl + ":" + e);
toUrl = null;
}
}
if (toUrl != null && urlFilters != null) {
try {
toUrl = urlFilters.filter(toUrl); // filter the url
} catch (Exception e) {
LOG.warn("Skipping " + toUrl + ":" + e);
toUrl = null;
}
}
if (toUrl == null) continue;
inlinks.clear();
String anchor = outlink.getAnchor(); // truncate long anchors
if (anchor.length() > maxAnchorLength) {
anchor = anchor.substring(0, maxAnchorLength);
}
inlinks.add(new Inlink(fromUrl, anchor)); // collect inverted link
try {
absoluteUri = new URI(baseUri, toUrl);
} catch (MalformedURIException e) {
continue;
}
// output.collect(new Text(toUrl), inlinks);
output.collect(new Text(absoluteUri.toString()), inlinks);
}
还有一种方法
import java.net.*;
import java.io.*;
public class Test{
public static void main(String args[]) throws Exception {
String abURL=null;
URI base=new URI("http://www.pep.com.cn/xe/jszx/tbjxzy/pepxe/pepsa/dzkb/200703/t20070308_303223.htm");//基本网页URI
URI abs=base.resolve("../../../pepwa/dzkb/200703/W020070308571116931595.jpg");//解析于上述网页的相对URL,得到绝对URI
URL absURL=abs.toURL();//转成URL
System.out.println(absURL);
abURL = absURL.toString();
}
}
转载于:https://my.oschina.net/junfrank/blog/286894
Nutch爬虫解决页面相对路径问题相关推荐
- 解决导航栏按钮背景色切换,刷新页面,按钮背景色切换,页面和路径没有切换问题
解决导航栏按钮背景色切换,刷新页面,按钮背景色切换,页面和路径没有切换问题 上篇博文中 点击导航栏切换背景色 有一个bug,如果点击第二个或者后面几个按钮,再刷新页面,按钮背景色会跳到第一个按钮上去, ...
- 网页爬虫之页面解析-BeautifulSoup/XPath/pyquery使用
网页爬虫之页面解析 内容摘要 Beautiful Soup的使用 节点选择 数据提取 XPath的使用 节点选择 数据提取 pyquery的使用 节点选择 数据提取 Beautiful Soup.XP ...
- 基于python爬虫————静态页面和动态页面爬取
基于python爬虫----静态页面和动态页面爬取 文章目录 基于python爬虫----静态页面和动态页面爬取 1. 爬虫的原理 2. 用正则表达式匹配获取数据 3. 页面源码解析 4. 通过req ...
- Nutch爬虫环境搭建
1 前言 1 2 环境介绍 2 3 准备工作 3 4 Solr安装 8 5 Hbase安装 14 6 Hadoop安装 17 7 Nutch安装 19 8 Solr使用 19 9 Nutch使用 19 ...
- nutch爬虫原来是这样操作的!
一.nutch简介 nutch是大名鼎鼎的Doug Cutting发起的爬虫项目,nutch孵化了现在大数据处理框架Hadoop.在nutch V 0.8.0 版本之前,Hadoop是nutch的一部 ...
- 解决页面间体验问题的纯前端容器Lath
提到前端你最先想到什么?前端工程?web?JavaScript.CSS.HTML? 前端性能现状 如果站在用户的视角那是他们距离信息最近的地方,无论前端在生产技术上如何演变,最终服务于信息表达的根本不 ...
- 解决页面换行因标点符号不能出现在每一行的开头,导致提前换行,中间出现空隙的问题
解决页面换行因标点符号不能出现在每一行的开头,导致提前换行,中间出现空隙的问题 参考文章: (1)解决页面换行因标点符号不能出现在每一行的开头,导致提前换行,中间出现空隙的问题 (2)https:// ...
- VUE项目中使用this.$forceUpdate();解决页面v-for中修改item属性值后页面v-if不改变的问题
VUE项目中使用this.$forceUpdate();解决页面v-for中修改item属性值后页面v-if不改变的问题 参考文章: (1)VUE项目中使用this.$forceUpdate();解决 ...
- 解决页面使用overflow: scroll在iOS上滑动卡顿的问题
解决页面使用overflow: scroll在iOS上滑动卡顿的问题 参考文章: (1)解决页面使用overflow: scroll在iOS上滑动卡顿的问题 (2)https://www.cnblog ...
最新文章
- 【计算机网络】网络层 : 总结 ( 功能 | 数据交换 | IP 数据报 | IPv4 地址 | IPv6 地址 | 路由选择协议 | 路由算法 )★★★
- 这 8 篇文章告诉你:未来的软件研发是怎样的?
- 图片不能置于底层怎么办_PPT中常遇到的图片问题和解决方案
- CF628D Magic Numbers (数据大+数位dp)求[a,b]中,偶数位的数字都是d,其余为数字都不是d,且能被m整除的数的个数...
- Python中的抽象类和抽象方法
- ECharts 常用图表一看即会「散点图」「饼图」「地图」「雷达图」「仪表盘」
- 魔力Python--if __name__ == '__main__' 的理解
- 从数据库导出数为生成excel表
- Root cause be too many concurrent connections error could not open clinet transport with jdbc uri
- 使用lambdaquery() 报空指针异常_ARMv8 异常处理简介
- 爬取飞猪IP免费代理练习
- atmega128 bootloader程序在IAR-AVR下 linker文件的配置及原因
- 一款神仙儿 MySQL 审核平台,吊到不行!
- 并网光伏发电系统(simulink仿真)
- pci转并口卡的安装使用
- [Python从零到壹] 五十.图像增强及运算篇之图像直方图理论知识和绘制实现
- Unity shader系列:好用的IDE--JetBrain Rider
- excel操作模块Openpyxl
- 微信小程序自定义picker多列选择器
- 哪些方法能减轻打呼噜的症状呢?