博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
简单的运用ExecutorService多线程爬虫
阅读量:5918 次
发布时间:2019-06-19

本文共 1515 字,大约阅读时间需要 5 分钟。

import java.io.File;import java.io.IOException;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import org.apache.commons.io.FileUtils;import org.jsoup.Connection;import org.jsoup.nodes.Document;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import com.sqr.base.util.LocalUtil;public class ExecutorsDemo {    private static Logger logger = LoggerFactory.getLogger(ExecutorsDemo.class);    public static void main(String[] args) {        ExecutorService executor = Executors.newFixedThreadPool(8);        long t0=System.currentTimeMillis();        int sum = 100;        String listUrl = "http://s.wanfangdata.com.cn/Paper.aspx";        String key = "日";        logger.debug("start pk");        for (int i = 1; i <= sum; i++) {            final int ii=i;            executor.execute(() -> {                Connection con = LocalUtil.connect(listUrl).data("q", key, "f", "top", "p", ii + "");                Document doc = LocalUtil.getDoc(con, false);                try {                    FileUtils.write(new File("d:/输出/wanfangPk1/" + ii + ".html"), doc.html(), "gbk");                } catch (IOException e) {                    e.printStackTrace();                }                logger.debug("日第"+ii+"页");            });        }        executor.shutdown();        while(!executor.isTerminated()){        }        logger.debug("完毕!用时"+LocalUtil.formatTime(System.currentTimeMillis()-t0));    }}

开了八个线程,运行时间大约是单线程的1/8.

转载于:https://www.cnblogs.com/windyWu/p/6292279.html

你可能感兴趣的文章
Windows平台下,Scrapy Installation,安装问题解决
查看>>
Linus vs. Tanenbaum关于宏内核与微内核之间的著名争论
查看>>
WCF数据契约代理和已知类型的使用
查看>>
c#常用的Datable转换为json,以及json转换为DataTable操作方法
查看>>
EJB 的理解
查看>>
css样式初始化
查看>>
51Nod-1002 数塔取数问题【DP】
查看>>
UVA129 HDU1627 Krypton Factor
查看>>
孙子算经 卷下
查看>>
我的第一个WinForm程序
查看>>
完美分页存储过程(有缺陷,无法加入条件)
查看>>
Spark Streaming实时计算框架介绍
查看>>
oracle主键自增
查看>>
PHP入门part2
查看>>
hexo如何添加自定义站内搜索
查看>>
微信公众号开发Django-网页授权
查看>>
字符串操作、文件操作,英文词频统计预处理
查看>>
Java反射
查看>>
动手做第一个Chrome插件
查看>>
Adjoint operators $T_K$ and $T_{K^{*}}$ in BEM
查看>>