摘要:以前开发过数据采集的程序,这段时间重新翻出来重构了一下代码,程序还有很多需要改进的地方web数据采集从http提交方式可分为get方式和post方式(其实还有其他方式,不过目前浏览器不支持),针对这两种方式的数据采集,当时本人通过继承抽象父类的方式来实现这两种采集方式的请求参数封装类,post方式的...
阅读全文
随笔分类 - 数据采集及解析
摘要:随着Internet的迅速发展,Web已经成为人们获取信息的主要渠道之一,大多数的企业或团体都是通过Web站点的网页发布企业信息。为了充分利用这些信息,而不仅仅是浏览,应用程序必须从HTML形式的Web网页中抽取感兴趣的数据,并转换成具有一定结构的格式化数据。Web包装器软件的任务就是负责抽取HTML格式的数据并转化为结构化的数据。基于Web包装器的应用程序能以访问数据库中信息的方式来访问Web数据,所以Web包装器是Web数据集成体系结构中的关键部分。论文在研究Web包装器概念设计的基础上,利用最新的Web技术、信息处理技术和人工智能技术,完成了Web网页数据抽取包装器软件的设计,并通过We
阅读全文
摘要:参考了iteye上的一篇文章http://yshjava.iteye.com/blog/1528208,本人还原了该文章的源码,还请那位博主原谅精确抽取web网页内容一直是做数据抽取开发比较头痛的问题,目前国内外也有很多研究成果,尚待进一步发掘并应用于实际项目中下面是转载部分:应该说,在WEB分块领域,已经有大量的研究工作。由于HTML语法的灵活性,目前大部分的网页都没有完全遵循W3C规范,这样可能会导致DOM树结果的错误。更重要的是,DOM树最早引入是为了在浏览器中进行布局显示,而不是进行WEB页面的语义结构描述。某些文献中提到,根据标签把网页分成若干内容块,这些分块方法流程简单,但面对日益
阅读全文
摘要:如何使用Groovy解析无法通过XML验证的HTML代码原文:Robust HTML parsing the Groovy way用Groovy解析XML很简单,只要确保输入的数据格式良好就能运行的很好——但现实并非总是能保证这一点。视考虑HTML代码,想让它们通过XML的验证总是困难重重,这就需要TagSoup来拯救了。主要的阻碍来自于:DTD未闭合的标签让我们通过一个简单的脚本来演示解析StackOverflow 的页面[java]view plaincopydefslurper=newXmlSlurper()defhtmlParser=slurper.parse("http:/
阅读全文
摘要:Namespace 問題在上一篇文章『HTML 資訊汲取(中篇) - Default namespace 問題』中提到:在 XPath 中,沒有所謂 default namespace (預設命名空間)。若 XPath 路徑未使用 prefix (前置字符) 指明 namespace,則其對應的 namespace 為 empty namespace (空命名空間)。因此,若在 XML 文件中定義了 default namespace,則所有的標籤必定都歸屬於某個不為空的 namespace。此時,未指明 namespace 的 XPath 路徑,將對應不到任何元素。另一方面,TagSoup
阅读全文
摘要:在上一篇文章『HTML 資訊汲取(上篇) - 使用 JDOM 、 TagSoup 及 XPath』裡,我提到了如何利用 JDOM 搭配 TagSoup,並使用 XPath 簡單地汲取資訊。其實,在上一篇的範例裡,我刻意避開了兩個困擾許多人的問題:namespace(命名空間)問題以及TagSoup 的輸出問題。Namespace 問題再看一下上一篇出現的新聞標題:<spanclass="titletext">曾雅妮的魔幻數字與粉紅色</span>假設,除了 span 之外,還有其他標籤,譬如 h4,也具有 titletext 類別,但是只有 span
阅读全文
摘要:簡介本文將以實際範例介紹如何以 JDOM 搭配 TagSoup ,將 HTML 解析為 DOM 文件物件模型,並使用 XPath 汲取資訊,或者將文件輸出為 XHTML 格式。資訊汲取Internet 上蘊藏著豐富的內容,供人們分享訊息、傳承知識。但是在 Semantic Web 普及之前,除非資料來源網站主動提供資料存取 API,否則,要擷取既有 Internet 上的資訊,還是只能從解析 HTML 著手。雜亂無章的 HTML (Malformed and faulty HTML)但是眾所週知,即使存在著如 XHTML 標準規範,網路上還是充斥著各種不合乎標準的 HTML 網頁。這個現象,甚
阅读全文
摘要:The important point about Java HTML parsing is to use a parser designed for it. While you can parse HTML using the default XML parser, it's a brittle thing because it will only accept well formed, strict XHTML.TagSoup libraryHence, I highly recommend using the TagSoup library which slots right i
阅读全文
摘要:1 引言2008年1月17日,中国互联网络信息中心(CNNIC)发布了《第21次中国互联网络发展状况统计报告》[1],报告显示:(1) 截至2007年12月,网民数已增至2.1亿人。中国网民数增长迅速,比2007年6月增加4800万人,2007年一年则增加了7300万人,年增长率达到53.3%。,在过去一年中平均每天增加网民20万人。(2) 目前中国的网民人数略低于美国的2.15亿 ,位于世界第二位。目前中国网站数量已达150万个,比去年同期增长了66万个,增长率达到78.4%。博客/个人空间等众多网络应用需求、域名数量增长的拉动及创建网站操作的简单化等因素作用在一起,共同使得网站数量猛增。(
阅读全文
摘要:转载 http://www.ibm.com/developerworks/cn/java/j-lo-jsouphtml/index.html简介:jsoup 是一款 Java 的 HTML 解析器,可直接解析某个 URL 地址、HTML 文本内容。它提供了一套非常省力的 API,可通过 DOM,CSS 以及类似于 jQuery 的操作方法来取出和操作数据。本文主要介绍如何使用 jsoup 来进行常用的 HTML 解析。jsoup 简介Java 程序在解析 HTML 文档时,相信大家都接触过 htmlparser 这个开源项目,我曾经在 IBM DW 上发表过两篇关于 htmlparser 的文
阅读全文
摘要:在早先的一篇关于 Mashups4JSF 的文章中(参见参考资料),我们了解了 Mashups4JSF 是什么,如何配置它,以及如何使用它构建一个有用的 mashup 应用程序。我们还了解了如何在 WebSphere Application Server V7.0 上结合使用库和 Apache MyFaces 2.0 以及 IBM JWL (JavaServer Faces Widget Library)。mashup 应用程序中最常见的用例之一就是以 feed(RSS 或 Atom)的形式导出应用程序的内部数据。在 Mashups4JSF 出现之前,开发人员需要从应用程序 DTO(数据传输对
阅读全文
摘要:简介:Heritrix 是一个由 java 开发的、开源的网络爬虫,用户可以使用它来从网上抓取想要的资源。其最出色之处在于它良好的可扩展性,方便用户实现自己的抓取逻辑。本文详细介绍了 Heritrix 在 Eclipse 中的配置、运行,最后以抓取北京林业大学网站为例,介绍如何对其进行扩展,实现只抓取特定网站的页面。本文由浅入深,详细介绍了 Heritrix 在 Eclipse 中的配置、运行。最后对其进行扩展,介绍如何实现只抓取特定网站的页面。通过本文,读者可以了解 Heritrix 的相关特点以及在 Eclipse 中的配置运行,能够从零开始构建特定站点的专有爬虫,从而为网站增加全文检索服
阅读全文
摘要:简介:编码问题一直困扰着开发人员,尤其在 Java 中更加明显,因为 Java 是跨平台语言,不同平台之间编码之间的切换较多。本文将向你详细介绍 Java 中编码问题出现的根本原因,你将了解到:Java 中经常遇到的几种编码格式的区别;Java 中经常需要编码的场景;出现中文问题的原因分析;在开发 Java web 程序时可能会存在编码的几个地方,一个 HTTP 请求怎么控制编码格式?如何避免出现中文问题?几种常见的编码格式为什么要编码不知道大家有没有想过一个问题,那就是为什么要编码?我们能不能不编码?要回答这个问题必须要回到计算机是如何表示我们人类能够理解的符号的,这些符号也就是我们人类使用
阅读全文
摘要:最近开发中用到curl库,虽然都是很简单的应用,但对这个库还是产生了兴趣,想学习总结一下。curl库功能非常强大,这里主要针对http应用,尤其是http文件下载做一个总结。当然了,还是主要针对Windows系统来讲。本文是第一篇,当然要简单介绍一下curl,然后说一下Windows系统下的编译安装,以及对curl工具的简单应用。curl是一个基于命令行的应用工具,提供利用URL标准进行文件传输的功能。目前已经支持非常多的流行的互联网协议,如:FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS and FILE等
阅读全文
摘要:一、简单介绍在上一篇中我们涉及到了一个在Ubuntu下使用的curl命令,并且使用这个命令来模拟服务器的功能来向谷歌的C2DM服务器发送数据。下面简单的来说下在Windows下同样的使用curl命令的方式。二、具体实现Windows下默认没有curl命令,需要安装后才能使用。1.到这里下载http://curl.haxx.se/download/文件curl-7.17.1-win32-ssl.zip,如果不需要使用ssl的话,可以直接下载curl-7.17.1-win32-nossl.zip,并且直接就可以使用。不过因为我们请求的谷歌网址是https格式的,所以我们要使用带ssl功能的。2.在
阅读全文
摘要:转载 http://www.ruanyifeng.com/blog/2011/09/curl.html 我一向以为,curl只是一个编程用的函数库。最近才发现,这个命令本身,就是一个无比有用的网站开发工具,请看我整理的它的用法。===================================curl网站开发指南阮一峰 整理curl是一种命令行工具,作用是发出网络请求,然后得到和提取数据,显示在"标准输出"(stdout)上面。它支持多种协议,下面举例讲解如何将它用于网站开发。一、查看网页源码直接在curl命令后加上网址,就可以看到网页源码。我们以网址www.sina.
阅读全文
摘要:使用httpClient可模拟请求Url获取资源,使用单线程的请求速度上会有一定的限制,参考了Apache给出的例子,自己做了测试实现多线程并发请求,以下代码需要HttpClient 4.2的包,可以在http://hc.apache.org/downloads.cgi下载1、并发请求View Code1packagegenerate.httpclient;23importjava.util.List;4importjava.util.concurrent.ExecutorService;5importjava.util.concurrent.Executors;67importorg.apa
阅读全文
浙公网安备 33010602011771号