01-Java爬虫

一.java爬虫常用的基础框架

HttpClient:用于请求网络发送http请求
Jsoup:用于解析网页  

二.webmagic框架

1.webmagic 是java的一个爬虫框架,底层是httpclient 和jsoup;
  webmagic 四大组件:

  downloader:下载器组件,从互联网下载html页面,并封装成Page对象,传递给PageProcess组件,底层是HttpClient实现。

  pageProcesser:爬虫的核心组件,必须自定义
    Site对象:站点参数的配置:抓取的间隔时间,超时时间,代理,编码格式,重试次数,添加header等
    Page对象:Html:Downloader组件抓取的页面封装成的Html对象;
    Selectable对象转化成字符串:
        toString()、get():如果是列表的话,只取第一个元素
        all():可以把Selectable转化成字符串,转换成一个List<String>
        links():取当前节点中所有的链接地址
        nodes():返回一个List<Selectable>对象

  pipeline:负责存储持久化解析的数据
    框架默认提供三个实现
    ConsolePipeline:框架默认使用,向控制台输出
    FilePipeline:向磁盘输出,可以把抓取到的结果保存到磁盘
    JsonFilePipeline:向磁盘输出保存到json数据

  scheduler:维护的待爬去的url列表
    url队列
    实现方法:
        QueueScheduler:java内存队列(默认使用)
        FileCacheQueueScheduler:使用文件做缓存的队列
        RedisSechduler:使用redis做队列,解决分布式爬虫问题
    向队列中添加url时去重
        1) 使用java中的hashset去重(默认使用)
        2) 使用redis的set去重
        3) 使用布隆过滤器去重
            有点:速度快
            缺点:可能未去重

    布隆过滤器使用方法:
        1) 创建一个QueryScheduler对象
        2) 创建一个布隆过滤器的对象
        3) 给Scheduler设置布隆过滤器
        4) 布隆过滤器需要guava支持
2.Spider 工具类 
    初始化爬虫,装配各个组件,同时设置参数    

三.定时器

四.代理的使用

五.selenium+无头浏览器

Last updated