当前位置: 首页 > 软件库 > 应用工具 > 网络爬虫 >

Crawler4j

Java多线程Web爬虫
授权协议 Apache
开发语言 Java
所属分类 应用工具、 网络爬虫
软件类型 开源软件
地区 不详
投 递 者 訾旭
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Crawler4j是一个开源的Java类库提供一个用于抓取Web页面的简单接口。可以利用它来构建一个多线程的Web爬虫。

示例代码:

import java.util.ArrayList;
import java.util.regex.Pattern;

import edu.uci.ics.crawler4j.crawler.Page;
import edu.uci.ics.crawler4j.crawler.WebCrawler;
import edu.uci.ics.crawler4j.url.WebURL;

public class MyCrawler extends WebCrawler {

        Pattern filters = Pattern.compile(".*(\\.(css|js|bmp|gif|jpe?g"
                + "|png|tiff?|mid|mp2|mp3|mp4"
                + "|wav|avi|mov|mpeg|ram|m4v|pdf"
                + "|rm|smil|wmv|swf|wma|zip|rar|gz))$");
       
        public MyCrawler() {
        }

        public boolean shouldVisit(WebURL url) {
                String href = url.getURL().toLowerCase();
                if (filters.matcher(href).matches()) {
                        return false;
                }
                if (href.startsWith("http://www.ics.uci.edu/")) {
                        return true;
                }
                return false;
        }

        public void visit(Page page) {
                int docid = page.getWebURL().getDocid();
                String url = page.getWebURL().getURL();        
                String text = page.getText();
                ArrayList<WebURL> links = page.getURLs();              
        }
}

  • crawl4j使用介绍 crawler4j是Java的开源Web爬网程序。 一、配置介绍 crawler4j可以通过简单的配置即可完成一个爬虫、 crawler4j主要通过 CrawlConfig 进行配置 ,详细参数: 属性 是否必填 类型 默认值 建议值 含义 crawlStorageFolder 是 String null   爬虫实例使用到的文件夹,文件夹里面会存储一些爬取到的数据、任务之

  • 本人也是菜鸟一枚,现在刚开始接触爬虫,想通过读别人的爬虫框架源码来了解下爬虫,如有错误,请见谅并指出。 继之前解析了crawler4j的robotstxt包之后,今天来让我们看看crawler包和exception包。 crawler包中主要有以下几个类: 1.Configurable:抽象配置类,这是一个抽象类,里面有一个CrawlConfig的引用。其他什么也没有了。 2.CrawlConfi

  • 在爬虫开发中,常用的语言是python,但是也可以使用java来进行 开发,这样就可以利用java强大的库,下面就来介绍一下常用的java爬虫框架。 Crawler4j 定制Controller层,用于控制爬虫的行为 使用main()直接开始程序即可 下面上代码: // 此类用于控制爬虫爬取网页的图片,并且将图片存储在本地 public class ImageCrawler extends Web

  • #Crawler4j是使用JAVA开发的开源Web爬虫 ###Crawler4j通过配置文件配置抓取任务,然后使用多线程进行抓取的Web爬虫.每个抓取任务使用独立线程上下文,支持在配置文件中同时配置多个抓取任务,复杂的抓取任务可通过扩展框架提供的基类实现,可以方便的将爬虫和其他解析存储程序进行集成. ####使用方法请参考 crawler4j-simple 模块 ##It's composed o

 相关资料
  • 主要内容:多线程使用流程,Queue队列模型,多线程爬虫案例网络爬虫程序是一种 IO 密集型程序,程序中涉及了很多网络 IO 以及本地磁盘 IO 操作,这些都会消耗大量的时间,从而降低程序的执行效率,而 Python 提供的多线程能够在一定程度上提升 IO 密集型程序的执行效率。 如果想学习 Python 多进程、多线程以及 Python GIL 全局解释器锁的相关知识,可参考《Python并发编程教程》。 多线程使用流程 Python 提供了两个支持多线

  • 本文向大家介绍JAVA 多线程爬虫实例详解,包括了JAVA 多线程爬虫实例详解的使用技巧和注意事项,需要的朋友参考一下 JAVA 多线程爬虫实例详解 前言 以前喜欢Python的爬虫是出于他的简洁,但到了后期需要更快,更大规模的爬虫的时候,我才渐渐意识到Java的强大。Java有一个很好的机制,就是多线程。而且Java的代码效率执行起来要比python快很多。这份博客主要用于记录我对多线程爬虫的实

  • 本文向大家介绍python支持多线程的爬虫实例,包括了python支持多线程的爬虫实例的使用技巧和注意事项,需要的朋友参考一下 python是支持多线程的, 主要是通过thread和threading这两个模块来实现的,本文主要给大家分享python实现多线程网页爬虫 一般来说,使用线程有两种模式, 一种是创建线程要执行的函数, 把这个函数传递进Thread对象里,让它来执行. 另一种是直接从Th

  • 本文向大家介绍基python实现多线程网页爬虫,包括了基python实现多线程网页爬虫的使用技巧和注意事项,需要的朋友参考一下 一般来说,使用线程有两种模式, 一种是创建线程要执行的函数, 把这个函数传递进Thread对象里,让它来执行. 另一种是直接从Thread继承,创建一个新的class,把线程执行的代码放到这个新的class里。 实现多线程网页爬虫,采用了多线程和锁机制,实现了广度优先算法

  • 本文向大家介绍python爬虫中多线程的使用详解,包括了python爬虫中多线程的使用详解的使用技巧和注意事项,需要的朋友参考一下 queue介绍 queue是python的标准库,俗称队列.可以直接import引用,在python2.x中,模块名为Queue。python3直接queue即可 在python中,多个线程之间的数据是共享的,多个线程进行数据交换的时候,不能够保证数据的安全性和一致性

  • 问题内容: 我想做一个基于Java的网络爬虫进行实验。我听说如果您是第一次使用Java编写Web爬虫,那是必须走的路。但是,我有两个重要问题。 我的程序如何“访问”或“连接”到网页?请简要说明。(我了解从硬件到软件的抽象层的基础,这里我对Java抽象感兴趣) 我应该使用哪些库?我假设我需要一个用于连接到网页的库,一个用于HTTP / HTTPS协议的库和一个用于HTML解析的库。 问题答案: 这是

  • 首先让我们创建一个可运行的单线程 web server,不过在开始之前,我们将快速了解一下构建 web server 所涉及到的协议。这些协议的细节超出了本书的范畴,不过一个简单的概括会提供你所需的信息。 web server 中涉及到的两个主要协议是 超文本传输协议(Hypertext Transfer Protocol,HTTP)和 传输控制协议(Transmission Control Pr

  • 本文向大家介绍Python多线程爬取豆瓣影评API接口,包括了Python多线程爬取豆瓣影评API接口的使用技巧和注意事项,需要的朋友参考一下 爬虫库 使用简单的requests库,这是一个阻塞的库,速度比较慢。 解析使用XPATH表达式 总体采用类的形式 多线程 使用concurrent.future并发模块,建立线程池,把future对象扔进去执行即可实现并发爬取效果 数据存储 使用Pytho