文档详情

Jsoup网页内容抓取解析.doc

发布:2017-03-10约4.63千字共6页下载文档
文本预览下载声明
在Java 程序在解析HTML 文档时,大家应该晓得htmlparser 这个开源项目,我也是使用过,不过这个程序到了2006年就没有更新了。由于我的基础较差,对于扩展自定义的标签还是不太懂,还是有超时问题困扰,偶然的机会中发现有jsoup,而且更新到了1.72版,使用起来还是很容易上手的。下面写些使用心得: ? ? ? ??jsoup?is a Java library for working with real-world HTML. It provides a very convenient API for extracting and manipulating data, using the best of DOM, CSS, and jquery-like methods. ? ? ? ?jsuop是一款java的html解析器,提供一套非常省力的API,通过dom模型css和类似于jquery的方式来获取和操作数据。 ? ? ? 功能:1.解析一个Html文档,2.解析一个body片段 ? ? ? ? Java代码?? String?html?=?htmlheadtitleFirst?parse/title/head?? ??+?bodypParsed?HTML?into?a?doc./p/body/html;?? Document?doc?=?Jsoup.parse(html);//分析文档,使用doc.toString()可以转为文本?? Element?body=doc.body();//获取body片段,使用body.toString()可以转为文本?? ? ? ? ? ? ? 获取方式:1.从本地文件加载 ? 2.根据url地址获取 ? ? ? ? Java代码?? /**使用静态?Jsoup.parse(File?in,?String?charsetName,?String?baseUri)?方法? ?*其中baseUri参数用于解决文件中URLs是相对路径的问题。? ?*如果不需要可以传入一个空的字符串。? ?*/?? File?input?=?new?File(/tmp/input.html);?? Document?doc?=?Jsoup.parse(input,?UTF-8,?/);?? ?? Java代码?? /**? ?*根据url直接获取内容,可以加入超时,get方法不行,就用post方法? ?*我在实际应用中,出现404,405,504等错误信息? ?*将get改为post就可以,或者反过来改? ?*如果等以后弄明白了,再来解释清楚? ?*/?? Document?doc1?=?Jsoup.connect(/).get();?? String?title?=?doc1.title();?//获取网页的标题?? String?content=doc1.toString();//将网页转为文本?? ?? Document?doc2?=?Jsoup.connect()?? ??.data(query,?Java)//请求参数?? ??.userAgent(Mozilla)//设置urer-agent?? ??.cookie(auth,?token)//设置cookie?? ??.timeout(50000)//设置连接超时?? ??.post();//或者改为get?? 经过我的测试使用,jsoup分析网页结构和内容的功能远远强大于HtmlParser,无论是获取整个页面的文本,还是分析特定内容的网页结构,都是十分的方便。 ? ? ? ? ? 附上链接:jsoup官网:/?,中文jsoup:/jsoup/ ? ? ?下面写些我的使用记录,希望大家如果能从我的方法中得到启发,鉴于本人从事开发工作不久,内容可能写的不是很好。 ? ? ? ?jsoup数据获取有两大方法:1.通过分析dom模型的网页标签和元素,2.select元素选择器,类似jquery方式(功能很强大,还支持正则表达式)。网页tag标签有body,div,table,tr,td,a,等等。元素的属性有,href,title,width,height,color等等,元素属性的值就是,例如:href=“”, 值就是 。width=“98%” 值就是98% ? ? ? ? ? ? 下面就以分析首页的每日资讯为例,抓取每日资讯的标题和url地址,详细写出分析步骤: ? ? ? ???1.用chrome浏览器的元素审查,分析页面的结构,得到每日资讯是div class=main_left层里面 ? ? ???2.写程序分析,首先根据url获取div文本,再来根据文本对内容进行分析 ? Ja
显示全部
相似文档