Java使用HtmlParser实现简单的网络爬虫_第1页
Java使用HtmlParser实现简单的网络爬虫_第2页
Java使用HtmlParser实现简单的网络爬虫_第3页
Java使用HtmlParser实现简单的网络爬虫_第4页
Java使用HtmlParser实现简单的网络爬虫_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java使用HtmlParser实现简单的网络爬虫目的Java使用HtmlParser抓取网页数据并解析。效果图例如:抓取12306网站中货物运价率的数据貝Console胡占粘"rv巳『寸菇D巳Hug<terminated>JavaCrawler[JavaApplication]D:\ProgramFiIes\Java\jdkl.7.021\bin\javaw.exe(2013-11-27上午10:04:31)基价工标连£ 基价2单位基价2标准7.40元■/吨公里0.05657.90元■/吨公里0.065110.50元■/吨公里0.070013.86元/吨公里0・075315.40]元■/吨公里0.084922.20元■/吨公里0.1146^nbsp;元/轴公里0・402516.70元/吨公里0.11340.168元/苗千克公里0.000860.235元皿千克公里0.00120387.50元/箱公里1.7325527.60元/箱公里2.3562吨江屯屯屯屯屯屯斗基元元元元元元亦千千00」.目一目11糜糜

卸7L/卸7L/4567机械冷藏车212220英尺箱40英尺箱名箱箱别车车车车车车车车担担爲廳类整整整整整整整整零霧集集packagecom.zc.test;import.HttpURLConnection;import.URL;importorg.htmlparser.Node;importorg.htmlparser.NodeFilter;importorg.htmlparser.Parser;importorg.htmlparserfilters.AndFilter;importorg.htmlparserfilters.HasAttributeFilter;importorg.htmlparserfilters.TagNameFilter;importorg.htmlparser.nodes.TagNode;importorg.htmlparser.tags.TableColumn;importorg.htmlparser.tags.TableRow;importorg.htmlparser.tags.TableTag;importorg.htmlparser.util.NodeList;©Descriptionjava爬虫测试类©author 张川(cr10210206@163.com)@data 2013-11-2710:01:13

*/publicclassJavaCrawler{/***测试**/publicstaticvoidmain(String[]args){JavaCrawlertest=newJavaCrawler();//货物运价率test.getGoodFareData("/hyinfo/action/JgxxAction_hwyjl?lx=00");//危险品运输栏目 危险品栏目内容//test.getDangerDivData("/hyinfo/page/home-freightProduction-Dangerous_index");//超限超重栏目超限超重栏目内容//test.getDangerDivData("/hyinfo/page/home-freightProduction-overweight_index");}/***获取Parser对象@paramurl@paramurl*/网络地址publicstaticParsergetParser(Stringurl){try{newParserparser=newParser((HttpURLConnection)newURL(url).openConnection());//数据源parser.setEncoding("UTF-8");//编码returnparser;}catch(Exceptione){e.printStackTrace();}returnnull;/***获取货物运价率数据**@paramurl 网络地址*/publicvoidgetGoodFareData(Stringurl){try{//解析器Parserparser=getParser(url);//标签过滤,第一个参数代表过滤的哪个标签,第二个参数代表过滤标签的哪个属性NodeFilterdivFilter=new AndFilter(newTagNameFilter(”table"),newHasAttributeFilter("id","T1"));//把过滤后的内容加入NodeList里进行遍历NodeList nodeList =parser.extractAllNodesThatMatch(divFilter);TableTagtableTag=(TableTag)nodeList.elementAt(0)//获取Table对象TableRow[]tableRows=tableTag.getRows();//获取行数组Stringandstr=" ";Systemout.println(”类别名称 运价号 基价1单位 基价1标准 基价2单位 基价2标准");for(inti=2;i<tableRows.length;i++){TableRowtableRow=tableRows[i];TableColumn[]tableColumns=tableRow.getColumns();//获取列数组TOC\o"1-5"\h\zString typeName =tableColumns[0].getStringText().replace(andstr,"”).trim();String fareid =tableColumns[1].getStringText().replace(andstr,"”).trim();String price1Unit =tableColumns[2].getStringText().replace(andstr,"”).trim();String price1St =tableColumns[3].getStringText().replace(andstr,"”).trim();String price2Unit =tableColumns[4].getStringText().replace(andstr,"”).trim();String price2St =tableColumns[5].getStringText().replace(andstr,"”).trim();System.out.println(typeName+" "+fareid+""+price1Unit+" "+price1St+" "+price2Unit+"

+price2St);}}catch(Exceptione){e.printStackTrace();*获取危险品运输栏目数据*@paramurl网络地址*/publicvoidgetDangerDivData(Stringurl){try{//解析器Parserparser=getParser(url);//标签过滤,第一个参数代表过滤的哪个标签,第二个参数代表过滤标签的哪个属性NodeFilterdivFilter=new AndFilter(newTagNameFilter("div"),newHasAttributeFilter("class","cleft"));//把过滤后的内容加入NodeList里进行遍历nodeListNodeListnodeListparser.extractAllNodesThatMatch(divFilter);Nodenode=nodeList.elementAt(0);NodeListchildNodeList=node.getChildren();if(childNodeList!=null&&childNodeList.size()>0){System.out.println("\n\n栏目标识 栏目名称”);for(inti=0;i<childNodeList.size();i++){NodechildNode=childNodeList.elementAt(i);if(childNodeinstanceofTagNode){TagNodetag=(TagNode)childNode;Stringid=tag.getAttribute("id");Stringvalue=tag.toPlainTextString();if(id!=null){System.out.println(id+" "+value);id;\n");url=url.substring(0,url.index0f("_"id;\n");System.out.println("["+value+"]的内容如下:this.getDangerContent(url);System.out.println( ");}}}}}catch(Exceptione){e.printStackTrace();}}*危险品栏目内容*@paramurl网络地址*/publicvoidgetDangerContent(Stringurl){try{//解析器Parserparser=getParser(url);//标签过滤,第一个参数代表过滤的哪个标签,第二个参数代表过滤标签的哪个属性NodeFilterdivFilter=new AndFilter(newTagNameFilter("div"),newHasAttribu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论