• java爬虫系列第一讲-爬虫入门


    1. 概述

    java爬虫系列包含哪些内容?

    1. java爬虫框架webmgic入门
    2. 使用webmgic爬取 http://ady01.com 中的电影资源(动作电影列表页、电影下载地址等信息)
    3. 使用webmgic爬取 极客时间 的课程资源(文章系列课程 和 视频系列的课程)

    本篇文章主要内容:

    1. 介绍java中好用的爬虫框架
    2. java爬虫框架webmagic介绍
    3. 使用webgic爬取动作电影列表信息

    2. java中好用的爬虫框架

    如何判断框架是否优秀?

    1. 容易学习和使用,网上对应的学习资料比较多,并且比较完善
    2. 使用的人比较多,存在的坑别人已经帮你填的差不多了,用起来会更顺心一些
    3. 框架更新比较快,社区活跃,可以快速体验一些更好的功能,并与作者进行交流
    4. 框架稳定、方便扩展

    按照以上几点的,推荐一款非常好用的java爬虫框架webmgic

    3. webmgic介绍

    4.使用webgic爬取动作电影列表

    使用webgic爬取 爱电影 电影列表资源信息

    示例源码地址

    1. 新建springboot项目java-pachong

    2. 导入maven配置

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
    
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    
        <!-- webmagic start -->
        <dependency>
            <groupId>us.codecraft</groupId>
            <artifactId>webmagic-core</artifactId>
            <version>0.7.3</version>
            <exclusions>
                <exclusion>
                    <artifactId>fastjson</artifactId>
                    <groupId>com.alibaba</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>commons-io</artifactId>
                    <groupId>commons-io</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>commons-io</artifactId>
                    <groupId>commons-io</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>fastjson</artifactId>
                    <groupId>com.alibaba</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>fastjson</artifactId>
                    <groupId>com.alibaba</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>log4j</artifactId>
                    <groupId>log4j</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>slf4j-log4j12</artifactId>
                    <groupId>org.slf4j</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>us.codecraft</groupId>
            <artifactId>webmagic-extension</artifactId>
            <version>0.7.3</version>
        </dependency>
        <dependency>
            <groupId>us.codecraft</groupId>
            <artifactId>webmagic-selenium</artifactId>
            <version>0.7.3</version>
        </dependency>
        <dependency>
            <groupId>net.minidev</groupId>
            <artifactId>json-smart</artifactId>
            <version>2.2.1</version>
        </dependency>
        <!-- webmagic end -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.49</version>
        </dependency>
        <dependency>
            <groupId>commons-lang</groupId>
            <artifactId>commons-lang</artifactId>
            <version>2.6</version>
        </dependency>
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.6</version>
        </dependency>
        <dependency>
            <groupId>commons-codec</groupId>
            <artifactId>commons-codec</artifactId>
            <version>1.11</version>
        </dependency>
        <dependency>
            <groupId>commons-collections</groupId>
            <artifactId>commons-collections</artifactId>
            <version>3.2.2</version>
        </dependency>
    </dependencies>
    

    3. 编写抓取电影数据的代码

    package com.ady01.demo1;
    
    import lombok.extern.slf4j.Slf4j;
    import us.codecraft.webmagic.Page;
    import us.codecraft.webmagic.Site;
    import us.codecraft.webmagic.Spider;
    import us.codecraft.webmagic.processor.PageProcessor;
    
    /**
     * <b>description</b>:第一个爬虫示例,爬去动作片列表信息 <br>
     * <b>time</b>:2019/4/20 10:58 <br>
     * <b>author</b>:ready likun_557@163.com
     */
    @Slf4j
    public class Ady01comPageProcessor implements PageProcessor {
        @Override
        public void process(Page page) {
            log.info("爬取成功!");
            log.info("爬取的内容:" + page.getRawText());
        }
    
        @Override
        public Site getSite() {
            return Site.me().setSleepTime(1000).setRetryTimes(3);
        }
    
        public static void main(String[] args) {
            String url = "http://m.ady01.com/rs/film/listJson/1/2?_=1555726508180";
            Spider.create(new Ady01comPageProcessor()).addUrl(url).thread(1).run();
        }
    }
    

    4. 运行爬虫代码

    运行Ady01comPageProcessor中的main方法,执行结果如下:

    5.总结

    1. 本文中主要用了一个示例说明webgic是如此简单就可以完成数据的抓取工作,从代码中可以看出复杂的代码webmagic都帮我们屏蔽了,只需要我们去关注业务代码的编写。
    2. 文章中没有详细介webmagic如何使用,至于我为何没有在文档中去做说明,主要是webigc已经提供了非常完善的学习文档,可以移步到webgic中文文档,需要更深入了解的可以研究一下webgic的源码,对你编写爬虫是非常有用的。
    3. 明日我们将爬取每个动作电影详情页信息,采集详情页中电影的下载地址
    4. 示例代码,导入到idea中运行,idea中需要安装mavenlombok的支持
    5. 更多技术文章请关注公众号:javacode2018
  • 相关阅读:
    mysql双主配置
    nginx js、css多个请求合并为一个请求(concat模块)
    PHP中利用Redis管道加快执行
    总结最近游戏中活动出现被刷问题。
    问题记录--负载均衡的均衡器配置了高可用导致问题
    php的session获取不到问题之ie浏览器(yaf框架)
    Django URLs error: view must be a callable or a list/tuple in the case of include()
    在Sublime Text运行Python.How to run Python code from Sumblime Text
    JavaWeb项目自动化部署测试学习
    hadoop2.5.1+hbase1.1.2安装与配置
  • 原文地址:https://www.cnblogs.com/itsoku123/p/10744522.html
Copyright © 2020-2023  润新知