锁定老帖子 主题:分享一个自己写的爬虫框架
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2013-07-26
最后修改:2013-07-26
自己用着还是挺顺手的,底层封装了HttpClient、Jsoup、HtmlCleaner,支持多线程,也包括url去重、重试、编码判断什么的。希望能帮到把各位自己手写爬虫代码的同学。 代码不长,自认为模块化的也挺清晰,如果对爬虫感兴趣的可以看一看。 以下是使用webmagic抓取某个iteye博客的所有文章,并提取标题和正文的爬虫代码: public class IteyeBlogProcessor implements PageProcessor { private Site site; @Override public void process(Page page) { page.addTargetRequests(page.getHtml().links().regex(".*yanghaoli\\.iteye\\.com/blog/\\d+").all()); page.putField("title",page.getHtml().xpath("//title").toString()); //自动抽取正文,用到了readability page.putField("content",page.getHtml().smartContent().toString()); } @Override public Site getSite() { if (site == null) { site = Site.me().setDomain("yanghaoli.iteye.com").addStartUrl("http://yanghaoli.iteye.com/").setSleepTime(100).setRetryTimes(3); } return site; } public static void main(String[] args) { Spider.create(new IteyeBlogProcessor()).thread(5).pipeline(new FilePipeline("/data/webmagic/")).run(); } } 已收录到oschina:http://www.oschina.net/p/webmagic github:https://github.com/code4craft/webmagic 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2013-07-29
LZ你好! 公司有个抓取视频信息的项目(播放地址,和描述信息),我自己也针对某酷写了一个爬虫,基于多线程,JSOUP的。
有个问题想请问一下LZ,在爬虫这块,有没有好的对URL进行分类的思路。 |
|
返回顶楼 | |
发表时间:2013-07-30
不知道你说的URL分类是指什么,是跟据页面内容对URL进行分类?
fisher123 写道 LZ你好! 公司有个抓取视频信息的项目(播放地址,和描述信息),我自己也针对某酷写了一个爬虫,基于多线程,JSOUP的。
有个问题想请问一下LZ,在爬虫这块,有没有好的对URL进行分类的思路。 |
|
返回顶楼 | |
发表时间:2013-07-31
一直想学习爬虫,但是又不知道从何做起,LZ可否指点迷津,感激不尽
|
|
返回顶楼 | |
发表时间:2013-07-31
如果你使用Java并且有一点基础的话,可以读一下我的webmagic的设计文档,里面把我所知道的理论都讲了一遍了。
http://my.oschina.net/flashsword/blog/145796 至尊宝_唯一 写道 一直想学习爬虫,但是又不知道从何做起,LZ可否指点迷津,感激不尽
|
|
返回顶楼 | |
发表时间:2013-08-01
打算学习一下
|
|
返回顶楼 | |
发表时间:2013-08-01
flashsword20 写道 如果你使用Java并且有一点基础的话,可以读一下我的webmagic的设计文档,里面把我所知道的理论都讲了一遍了。
http://my.oschina.net/flashsword/blog/145796 至尊宝_唯一 写道 一直想学习爬虫,但是又不知道从何做起,LZ可否指点迷津,感激不尽 打算学习下 |
|
返回顶楼 | |
发表时间:2013-08-02
爬虫框架是不是首先要分析下 整个HTML,根据HTML的标签等信息整理好 爬虫爬取的策略?
同时还要几个问题: 1. 实体类怎么设计?爬不同页面,不同资料,设计不同的实体类 2. 爬虫有定时功能吗? 对新出现的资料进行爬取 |
|
返回顶楼 | |
发表时间:2013-08-02
谢谢![quote="flashsword20"]如果你使用Java并且有一点基础的话,可以读一下我的webmagic的设计文档,里面把我所知道的理论都讲了一遍了。 http://my.oschina.net/flashsword/blog/145796 [quote="至尊宝_唯一"]一直想学习爬虫,但是又不知道从何做起,LZ可否指点迷津,感激不尽
|
|
返回顶楼 | |
发表时间:2013-08-02
实体类的想法很好,我正好最近也想到了这个东西,正在做一个基于模型的实现。
目前实现大概是这样子: @TargetUrl("http://my.oschina.net/flashsword/blog/*") public class OschinaBlog { @ExtractBy("//title") private String title; @ExtractBy(value = "div.BlogContent",type = ExtractBy.Type.Css) private String content; } 增量抓取目前还没实现,因为需要外接存储。简单的实现,设计上给URL加上一个时间戳即可,不会太复杂。 endual 写道 爬虫框架是不是首先要分析下 整个HTML,根据HTML的标签等信息整理好 爬虫爬取的策略?
同时还要几个问题: 1. 实体类怎么设计?爬不同页面,不同资料,设计不同的实体类 2. 爬虫有定时功能吗? 对新出现的资料进行爬取 |
|
返回顶楼 | |