nutch使用使用Nutch能抓取针对性的内容吗

nutch使用  时间:2021-06-09  阅读:()

使用Nutch能抓取针对性的内容吗

可以,修改一下nutch的插件就行了。

由于好久没你那个nutch了,那时候还是1.0,不过nutch在spider这块的插件应该没什么变动。

首先你要知道你要抓取的新闻的div 修改parse-html插件,HtmlParser.java这个文件。

因为我这边没有环境,刚从官网上下了个1.7的源码,对着里面的和你说。

我们要修改的方法是private DocumentFragment parse(InputSource input) 这个方法,你可以debug一下,input里面,就是抓取的页面里的内容,(如果不是,你再从其他的方法里找找) 然后创建一个分析input的方法。

在里面用htmlparser把你要的结构拿出来。

不过htmlarser有BUG,而且很久都没有更新了,建议你用Jsoup。

我的日志里面用的是htmlparser,所以你改改就可以。

public InputSource getinput(InputSource input){ String str=""; try { BufferedReader isr = new BufferedReader(newInputStreamReader(input.getByteStream(),"utf-8")); while(isr.ready()){ str+=(char)isr.read(); } } catch (UnsupportedEncodingException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } try { Parser p = new Parser(str); p.setEncoding("utf-8"); NodeFilter filter=new AndFilter(newTagNameFilter("div"),new HasAttributeFilter("class","mconleft")); NodeList nodelist=p.parse(filter); NodeIterator it=nodelist.elements(); if(!it.hasMoreNodes()){ input.setByteStream(newByteArrayInputStream(str.getBytes("utf-8"))); return input; } while(it.hasMoreNodes()){ Node node=(Node)it.nextNode(); input.setByteStream(newByteArrayInputStream(node.toHtml().getBytes("UTF-8"))); } } catch (ParserException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } return input; } 从代码上你能看到,我这里只抓取 DIV的class叫mconleft的。

把你要抓取的新闻的div替换这块就可以了,然后将方法应用的parse(InputSource input)里面,然后从新ant一下nutch,把war包放到tomat下面试试。

基本上就是这样了,可能还有其他的更简单的方法。

当时急着用nutch,就没具体的研究,现在也不弄了,呵呵 纯手打,希望能帮到你

百纵科技(19元/月),美国洛杉矶10G防御服务器/洛杉矶C3机房 带金盾高防

百纵科技官网:https://www.baizon.cn/百纵科技:美国云服务器活动重磅来袭,洛杉矶C3机房 带金盾高防,会员后台可自助管理防火墙,添加黑白名单 CC策略开启低中高.CPU全系列E52680v3 DDR4内存 三星固态盘列阵。另有高防清洗!美国洛杉矶 CN2 云服务器CPU内存带宽数据盘防御价格1H1G10M10G10G19元/月 购买地址2H1G10M10G10G29元/月 购买...

舍利云:海外云服务器,6核16G超大带宽vps;支持全球范围,原价516,折后价200元/月!

舍利云怎么样?舍利云推出了6核16G超大带宽316G高性能SSD和CPU,支持全球范围,原价516,折后价200元一月。原价80美元,现价30美元,支持地区:日本,新加坡,荷兰,法国,英国,澳大利亚,加拿大,韩国,美国纽约,美国硅谷,美国洛杉矶,美国亚特兰大,美国迈阿密州,美国西雅图,美国芝加哥,美国达拉斯。舍利云是vps云服务器的销售商家,其产品主要的特色是适合seo和建站,性价比方面非常不错,...

Megalayer优化带宽和VPS主机主机方案策略 15M CN2优化带宽和30M全向带宽

Megalayer 商家主营业务是以独立服务器和站群服务器的,后来也陆续的有新增香港、菲律宾数据中心的VPS主机产品。由于其线路的丰富,还是深受一些用户喜欢的,有CN2优化直连线路,有全向国际线路,以及针对欧美的国际线路。这次有看到商家也有新增美国机房的VPS主机,也有包括15M带宽CN2优化带宽以及30M带宽的全向线路。Megalayer 商家提供的美国机房VPS产品,提供的配置方案也是比较多,...

nutch使用为你推荐
mac地址克隆路由器的Mac地址克隆有什么作用?eagleeye《鹰眼》的男主角是谁?chrome系统谷歌Chrome OS可以用来做什么?y码女款衣服XXL、XL、XXXL尺码分别是多大?华为总裁女儿为啥姓孟孟晚舟姓孟,任正非姓任,孟晚舟怎么是任正非的女?oa办公系统下载oa办公软件哪里可以下载?12种颜色油画的基本12种颜色是什么鄂n鄂N的车牌是那里的?数据挖掘项目什么是数据挖掘?从事相关的工作有什么要求?微软操作系统下载怎样在微软官网下载windows7 64位旗舰版
太原域名注册 免费域名空间申请 赵容 hawkhost优惠码 godaddy主机 云图标 大容量存储 150邮箱 本网站在美国维护 七夕促销 国外代理服务器软件 卡巴斯基免费试用版 空间登陆首页 谷歌台湾 万网主机 镇江高防服务器 phpinfo 第八届中美互联网论坛 alexa世界排名 apache启动失败 更多