解析网页后是否需要释放资源

发布于 2021-11-09 13:02:35 字数 1474 浏览 817 评论 9

使用过htmlparser的高手,想请教下,在用Parser 解析网页后是不是应该释放资源啊?我做定时抓取网页,但tomcat6在运行一段时间后,从最初的48m 上升到140m左右,如果继续运行,应该还会增长.哪位有这方面的使用心得,请不吝赐教.

Parser parser = new Parser();
        try {
            parser.setURL(url);
            parser.setEncoding(parser.getEncoding());
            log.info("Login On Successfully --->" +url);

            ObjectFindingVisitor visitorForm = new ObjectFindingVisitor(
                    FormTag.class);
           parser.visitAllNodesWith(visitorForm);
           Node[] nodes = visitorForm.getTags();

          /*  解析网页得到内容后,此处是否需要释放资源 */

        } catch (ParserException e) {
            log.error(e.getMessage());
            throw new Exception("login On Failture --->" + url);
        } 

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

回眸一笑 2021-11-16 05:57:16

现在不习惯用htmlparser了

都是直接分割字符串

哈哈

臻嫒无言 2021-11-16 05:54:56

不用释放资源.. 不过要parser.reset(),这个比较麻烦

泪冰清 2021-11-16 04:49:16

这还不简单,你看看htmlparser源码不就行了,我以前也用过,没有自己释放资源,应该htmlparser自动就处理了,他把网页读成字符串后,肯定就关闭了流.

谢绝鈎搭 2021-11-16 02:43:37

各位高高手,给指点指点啊!

沦落红尘 2021-11-16 01:53:22

感谢回复.用seturl好象性能上会差一些,这一点我再做优化.parser解析的的确是String.但应该是把String 读进字符流进行解析吧.public class Stream extends InputStream implements Runnable{}.这是源码里的一个类.

残花月 2021-11-15 21:59:07

Parser  parser = Parser.createParser(body, "UTF-8");

解析的是String,而不是inputstream!可以去查看Parser的源码,

如果用setURL,来抓网页数据,性能会差一些吧!

悟红尘 2021-11-15 00:02:00

即使你用HttpClient来抓取数据,不还得是用parser来解析吗?那解析后呢?解析应该是用inputstream来做的。所以我才会怀疑需要有个close的过程。

情绪失控 2021-11-14 07:47:54

其实一般解析HTML内容,看具体页面的大小,跑到 140M 也算正常,只要不再涨得太离谱就行了~~

坚持沉默 2021-11-14 03:46:40

没这么用过~~倒是用过HttpClient来抓数据,HTMLParser来解析抓来的Html内容~~~

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文