Skip to content

Latest commit

 

History

History
41 lines (26 loc) · 2.08 KB

File metadata and controls

41 lines (26 loc) · 2.08 KB

开发路线

API和功能请求应作为PR提交到本文档。

框架核心

  • (基本完成)完成使用者会接触的各项复杂类的构建类(Builder模式)

  • Operator提供pre(Request)方法,该方法执行预先请求,主要用于类似登录的操作。提供follow()方法提示爬虫将跳转的界面作为入口。

  • HtmlUnitDownloader下载器适配以及HtmlUnitDownloaderFactory构建工厂类

  • (已完成)Spider提供的pause/recover功能实现,提供暂停/恢复功能(已写接口,但并未实现,可查看//TODO)

  • proxy代理。目前对于proxy并没有比较好的想法,因为代理的情况很多,考虑很多代理提供商会有http隧道直接ip等多种代理方式。目前代理配置了并不会起作用

  • 注解配置支持。spider.of(xxx.class)方法,读取类注解构建ModelExtractor

  • 爬取结果的处理,目前使用Saver的机制,并不能很好的配合使用者,需要进行讨论。

  • (已完成 X 2)ResponseHandler支持。

    SpiderBuilder.defaults().of(response -> {
        response.modelName("project");
        response.asTarget().matchUrl(new LinkSelector("github\\.com/zidoshare/[^/]*$"));
        response.asHelper().filter(new LinkSelector("github\\.com/zidoshare/[^/]*$"));
        response.asContent().html().xpath("//*[@id=\"js-repo-pjax-container\"]/div[1]/div/h1/strong/a").text().save("title");
        response.asContent().html().xpath("//span[@class=\"text-gray-dark mr-2\"]").text().save("description");
        response.asContent().html().xpath("//*[@id=\"readme\"]/div[2]").text().save("readme");
    }).execute("http://github.com/zidoshare").block();

    api化的构建抓取器

  • sleeptime支持,目前的sleeptime仅仅是最简单的实现,实际场景中没有意义,多线程下无法做到等待xxs后执行下一次爬去的场景。所以考虑加入一个全局钟摆实现等待。

  • 多线程下异常梳理,有些异常并不能让任务停下来,这个得等到代码进入一定规模后好好梳理一下。

分布式

分布式支持还早...