分类 Java 下的文章

Java爬虫框架:SeimiCrawler——结构化解析与数据存储

本文将介绍如何使用SeimiCrawler将页面中信息提取为结构化数据并存储到数据库中,这也是大家非常常见的使用场景。数据抓取将以抓取博客园的博客为例。

建立基本数据结构

为了演示,简单起见只建立一个用来存储博客标题和内容两个主要信息的表即可。表如下:

CREATE TABLE `blog` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(300) DEFAULT NULL,
  `content` text,
  `update_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

- 阅读剩余部分 -

SeimiCrawler+SeimiAgent完美解决动态页面渲染Ajax抓取问题

前言

曾几何时,动态页面(ajax,内部js二次渲染等等)信息提取一直都是爬虫开发者的心痛点,一句话,实在没有合适的工具。尤其在Java里面,像htmlunit这种工具都算得上解析动态页面的神器了,但是他依然不够完备,达不到浏览器级的解析效果,遇到稍微复杂点的页面就不行了。在经历的各种痛与恨后,笔者决定干脆开发一款专为应对抓取,监控,以及测试这类场景使用的动态页面渲染处理服务器。要达到浏览器级的效果,那必须基于浏览器内核来开发,幸运的是我们有开源的webkit,更为幸运的是我们有对开发者更为友好的QtWebkit。所以SeimiAgent就这样诞生了。

- 阅读剩余部分 -

Java爬虫框架:SeimiCrawler v0.2.7发布

Change log

v0.2.7

  • 内嵌http接口在可以接收单个Json形式Request基础上增加支持接收Json数组形式的多个Request
  • Request对象支持设置skipDuplicateFilter用来告诉seimi处理器跳过去重机制,默认不跳过
  • 增加定时调度使用Demo
  • 回调函数通过Request传递自定义参数值类型由Object改为String,方便明确处理
  • Fix:修复一个打日志的bug

- 阅读剩余部分 -