java爬蟲系列第一講-爬蟲入門
阿新 • • 發佈:2019-04-21
爬取 tsl 好的 imp src target spider log4j info
1. 概述
java爬蟲系列包含哪些內容?
- java爬蟲框架webmgic入門
- 使用webmgic爬取 http://ady01.com 中的電影資源(動作電影列表頁、電影下載地址等信息)
- 使用webmgic爬取 極客時間 的課程資源(文章系列課程 和 視頻系列的課程)
本篇文章主要內容:
- 介紹java中好用的爬蟲框架
- java爬蟲框架webmagic介紹
- 使用webgic爬取動作電影列表信息
2. java中好用的爬蟲框架
如何判斷框架是否優秀?
- 容易學習和使用,網上對應的學習資料比較多,並且比較完善
- 使用的人比較多,存在的坑別人已經幫你填的差不多了,用起來會更順心一些
- 框架更新比較快,社區活躍,可以快速體驗一些更好的功能,並與作者進行交流
- 框架穩定、方便擴展
按照以上幾點的,推薦一款非常好用的java爬蟲框架webmgic
3. webmgic介紹
- WebMagic是一個簡單靈活的Java爬蟲框架。基於WebMagic,你可以快速開發出一個高效、易維護的爬蟲。
- webmagic官網:http://webmagic.io/
- webmgic中文學習文檔:http://webmagic.io/docs/zh/
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. 編寫抓取電影數據的代碼
在谷歌瀏覽器中訪問 愛電影動作片列表
F12發現列表頁中數據是通過一個ajax請求獲取的,我們獲取請求地址
http://m.ady01.com/rs/film/listJson/1/2?_=1555726508180
編寫抓取代碼
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 [email protected] */ @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.總結
- 本文中主要用了一個示例說明webgic是如此簡單就可以完成數據的抓取工作,從代碼中可以看出復雜的代碼webmagic都幫我們屏蔽了,只需要我們去關註業務代碼的編寫。
- 文章中沒有詳細介webmagic如何使用,至於我為何沒有在文檔中去做說明,主要是webigc已經提供了非常完善的學習文檔,可以移步到webgic中文文檔,需要更深入了解的可以研究一下webgic的源碼,對你編寫爬蟲是非常有用的。
- 明日我們將爬取每個動作電影詳情頁信息,采集詳情頁中電影的下載地址
- 示例代碼,導入到idea中運行,idea中需要安裝maven和lombok的支持
- 更多技術文章請關註公眾號:javacode2018
java爬蟲系列第一講-爬蟲入門