文档章节

爬虫实践基于webmagic

ihuotui
 ihuotui
发布于 2017/01/12 17:14
字数 244
阅读 156
收藏 1

爬虫实践基于webmagic,提供一个例子用于层次化主题帖子和二级帖子及内容。

webmagic介绍

5分钟实现爬oschina帖子

目标

1 遍历主题列表

2 读取主题详情页,获取目标文件或者图片或者内容

3(可选)读取主题详情页下一页,获取目标文件或者图片

4(可选)下载目标文件

说明,使用redis作为进度保存。

基于以上目标

1 写了一个抽象类 AbstractPageAndSubPageProcessor 作为遍历抽象,子类集成后,实现一些逻辑就可以运行。

2 使用DownloadUrlFileThread来下载具体文件。

3 测试方法运行test目录的AbstractPageTest

看了一下源码处理processor可以改为责任链,然后可以根据不同页面写不同的processor。

© 著作权归作者所有

上一篇: 从慢sql到慢操作
下一篇: 抢单问题 并发
ihuotui
粉丝 8
博文 18
码字总数 7672
作品 0
广州
程序员
私信 提问
webmagic 0.2.0 发布,Java垂直爬虫框架

此次更新的主题是"方便"(之前的主题是"灵活")。 增加了webmagic-extension模块。 增加了注解方式支持,可以通过POJO+注解的方式编写一个爬虫,更符合Java开发习惯。以下是抓取oschina博客的完...

黄亿华
2013/08/12
5.1K
22
初步框架方案

此项目核心分三块(爬虫引擎,数据存储,web界面以及restful api) 爬虫引擎 采用webmagic作为框架 webmagic的是一个无须配置、便于二次开发的爬虫框架,它提供简单灵活的API,只需少量代码即...

OSC闲人
2016/01/22
3
0
WebMagic 0.4.1 发布,Java 爬虫框架

此次更新加强了Ajax抓取的功能,并进行了一些功能改进。同时引入了重要的脚本化功能"webmagic-script",为今后的WebMagic-Avalon计划做准备。 功能增强: 修复了抓取完页面后,Spider偶尔无法...

黄亿华
2013/11/28
3.2K
17
WebMagic-Avalon之分布式实现方案

WebMagic之前具有基本的分布式功能,可以将一个Spider部署到多台机器上,并通过Redis来管理URL,达到多机合作抓取的目标。 我在WebMagic-Avalon里计划完成一个管理后台,通过这个后台可以新建...

黄亿华
2014/03/12
5K
19
WebMagic使用说明-安装篇

WebMagic使用说明-安装篇 本文是WebMagic文档的一部分。系列文章写完后,会整合到WebMagic新版文档中。 1. 使用WebMagic WebMagic主要包含两个jar包:和。在项目中添加这两个包的依赖,即可使...

黄亿华
2014/04/03
3.2K
13

没有更多内容

加载失败,请刷新页面

加载更多

python数据结构

1、字符串及其方法(案例来自Python-100-Days) def main(): str1 = 'hello, world!' # 通过len函数计算字符串的长度 print(len(str1)) # 13 # 获得字符串首字母大写的...

huijue
10分钟前
1
0
OSChina 周日乱弹 —— 我,小小编辑,食人族酋长

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @宇辰OSC :分享娃娃的单曲《飘洋过海来看你》: #今日歌曲推荐# 《飘洋过海来看你》- 娃娃 手机党少年们想听歌,请使劲儿戳(这里) @宇辰OSC...

小小编辑
今天
743
10
MongoDB系列-- SpringBoot 中对 MongoDB 的 基本操作

SpringBoot 中对 MongoDB 的 基本操作 Database 库的创建 首先 在MongoDB 操作客户端 Robo 3T 中 创建数据库: 增加用户User: 创建 Collections 集合(类似mysql 中的 表): 后面我们大部分都...

TcWong
今天
40
0
spring cloud

一、从面试题入手 1.1、什么事微服务 1.2、微服务之间如何独立通讯的 1.3、springCloud和Dubbo有哪些区别 1.通信机制:DUbbo基于RPC远程过程调用;微服务cloud基于http restFUL API 1.4、spr...

榴莲黑芝麻糊
今天
26
0
Executor线程池原理与源码解读

线程池为线程生命周期的开销和资源不足问题提供了解决方 案。通过对多个任务重用线程,线程创建的开销被分摊到了多个任务上。 线程实现方式 Thread、Runnable、Callable //实现Runnable接口的...

小强的进阶之路
昨天
79
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部