Score
0
Watch 31 Star 50 Fork 14

达达软件 / AndroidCrawlerAndroidGPL-3.0

Join us
Explore and code with more than 2 million developers,Free private repositories !:)
Sign up
Android上的一款采集框架, 采用Retrofit + OkHttp + Rxjava + Eventbus + Greendao + Jsoup + Meterial Design, 参考webmagic爬虫框架并用rxjava制作了自定义的采集框架。 spread retract

Clone or download
Cancel
Notice: Creating folder will generate an empty file .keep, because not support in Git
Loading...
README.md

Android Crawler 采集新闻框架


Android Crawler, 一款采集软件, 采用Retrofit + OkHttp + Rxjava + Eventbus + Greendao + Jsoup + Meterial Design, 参考webmagic爬虫框架并用rxjava制作了自定义的采集框架。

采集网站

Thanks to the open source project 使用框架

feature

  • 使用Android前台Service,提高优先权不被手机内存回收,后台采集

  • 使用接口化的采集框架,可以扩展不同的采集规则

文档

以下可以根据实际情况修改

注意更改 gradle/wrapper/gradle-wrapper.properties 中

distributionUrl=file:///D:/android/gradle/gradle-2.14.1-all.zip

为自己的本地gradle路径

数据库设计

article表

public class Article {

    private String title;

    private String content;

    private Date time;

    //栏目
    private String column;

    @Id
    private String url;
}

采用url作为主键,标识是否采集过了

采集框架

采集的思想是分schedule和processor。

  • schedule负责提供url,在本示例中是采集列表页,返回文章的url数组。所以实现schedule的时候,在schedule中可以定义栏目等采集信息,维护当前列表的页码,当spider要求更多的url时候,返回url数组,如果列表页没有下一页的时候可以主动停止spider。

  • processor解析html后,可以传递给pipeline做一些其它工作,比如保存到数据库等

│ ISpider.java
│ Spider.java
│ SpiderListener.java

├─pipeline
│ GreenDaoPipeline.java
│ IPipeline.java

├─processor
│ ContentProcessor.java
│ IContentProcessor.java
│ IUrlProcessor.java
│ ListProcessor.java

└─schedule
CommonSchedule.java
ISchedule.java

ISpider 采集统筹管理类

IContentProcessor,IUrlProcessor 解析html内容
ISchedule 负责提供url队列,没有url的时候可以主动停止当前spider
IPipeline 实现数据的持久化,写入数据库等。

详情请参考Spider实现类 未完待续。

提取栏目json字符串的js

访问网站,在开发者工具控制台输入以下,运行

function getList(){
var arr=[];
$('dl.menu').find('dd').each(function(){
var $this=$(this);
var text=$this.text();
var href=$this.find('a').attr('href');
var node={};
node.text=text;
node.href=href;
arr.push(node);
})
return JSON.stringify(arr);
}
getList();

如下:

[
  {
    "text": "政策文件",
    "href": "/article/fwydyl/zcwj"
  },
  {
    "text": "统计数据",
    "href": "/article/fwydyl/tjsj"
  },
  {
    "text": "相关资讯",
    "href": "/article/fwydyl/zgzx"
  },
...
]

license

基于GPL,可参考基础框架代码。

参考资料

Android Service

Comments ( 0 )

Sign in for post a comment

Android
1
https://gitee.com/chinagtech/zouchuqu_crawler_app.git
git@gitee.com:chinagtech/zouchuqu_crawler_app.git
chinagtech
zouchuqu_crawler_app
AndroidCrawler
master

Help Search