热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

网络爬虫之java基础(Ⅰ)

目录1Java中maven的使用2log4jlog4j的介绍log4j提供的几种方法使用步骤3输入流与输出流数据的读写程序以及map的使用这张图为我给自己研究所人讲网络爬虫的一个

目录


  • 1Java中maven的使用
  •  
  • 2log4j
    • log4j的介绍
    • log4j提供的几种方法
    • 使用步骤
  • 3输入流与输出流
    • 数据的读写程序以及map的使用

这里写图片描述
这张图为我给自己研究所人讲网络爬虫的一个流程,本人也将按照这个流程来讲网络爬虫,如果你的基础较好,可以直接跳过相关流程。


1、Java中maven的使用

使用maven能很轻松的从网络中下载所需的插件
及依赖(下载程序所依赖的JAR包),存储在某一位置中,在程序编译时自动去寻找jar包。初次使用maven时,可能会很慢,会遇到很多问题(国外的源,下载jar包很慢)可以配置一些国内的源,如csdn的。
maven的jar包搜索地址地址:http://mvnrepository.com/,可以通过这个地址搜索自己需要的相关jar包。
这里写图片描述

使用maven最大的方面,在ecliplse中建工程的时候,我们选择maven工程。如下图所示,maven工程上面会有一个M的标致,同时生成一个pom.xml文件,通过在pom.xml中加入以下类型的文件,便可把jar包引入到Maven Dependencies中。

<dependency><groupId>org.jsoupgroupId><artifactId>jsoupartifactId><version> 1.8.2version>dependency>

这里写图片描述

我们可以在http://mvnrepository.com/网站中搜索自己需要的相关jar包后&#xff0c;将其复制到pom.xml中即可。如下图所示

这里写图片描述


 


2、log4j


log4j的介绍

log4j是Apache下的一个开源项目&#xff0c;用来控制日志信息&#xff0c;方便的日志记录。之所以要记录日志&#xff0c;可以详细的记录程序发生了什么&#xff0c;在哪里发生的&#xff0c;有没有错误等。在使用log4j之前需要使用maven引入log4j的jar包。
其中&#xff0c;日志的输出级别&#xff08;%p &#xff09;&#xff1a;DEBUG&#xff0c;INFO&#xff0c;WARN&#xff0c;ERROR&#xff0c;FATAL(每个严重的错误事件将会导致应用程序的退出)


log4j提供的几种方法

(1)Appender方法&#xff1a;日志输出目的地
org.apache.log4j.ConsoleAppender&#xff08;控制台&#xff09;&#xff0c;org.apache.log4j.FileAppender&#xff08;文件&#xff09;&#xff0c;org.apache.log4j.DailyRollingFileAppender&#xff08;每天产生一个日志文件&#xff09;&#xff0c;org.apache.log4j.RollingFileAppender&#xff08;文件大小到达指定尺寸的时候产生一个新的文件&#xff09;&#xff0c;org.apache.log4j.WriterAppender&#xff08;将日志信息以流格式发送到任意指定的地方&#xff09;。
(2)Layout方法&#xff1a;日志输出格式
org.apache.log4j.HTMLLayout&#xff08;以HTML表格形式布局&#xff09;&#xff0c;org.apache.log4j.PatternLayout&#xff08;可以灵活地指定布局模式&#xff09;&#xff0c;org.apache.log4j.SimpleLayout&#xff08;包含日志信息的级别和信息字符串&#xff09;&#xff0c;org.apache.log4j.TTCCLayout&#xff08;包含日志产生的时间、线程、类别等等信息&#xff09;。


使用步骤

(1)导入log4j-1.2.8.jar包&#xff08;我们使用maven&#xff09;。
(2)在根目录src下建立并配置log4j.properties&#xff0c;如下图所示为我的配置。
(3)使用&#xff08;演示&#xff09;&#xff0c;如下图所示。
logger.debug(“This is debug.”);
logger.info(“This is an info.”);
logger.warn(“This is a warning.”);
logger.error(“This is an error.”);
logger.fatal(“This is a fatal error.”);
这里写图片描述
这里写图片描述



3、输入流与输出流

这里也不做很多介绍&#xff0c;简单一点&#xff0c;输入流、输出流就是文件的读与写&#xff0c;当然这样理解比较狭隘。详细的&#xff0c;大家可以看http://blog.csdn.net/liuxiaogangqq/article/details/25892667。这篇博客&#xff0c;总结的很全面&#xff0c;值得学习。
&#xff08;1&#xff09;读取文件&#xff08;输入流read()&#xff09;、写文件(输出流write())
&#xff08;2&#xff09;文件字节流&#xff1a;FileInputStream&#xff08;&#xff09;、 FileOutputStream&#xff08;&#xff09;
&#xff08;3&#xff09;文件字符流&#xff1a; FileReader()、FileWriter ()
&#xff08;4&#xff09;缓冲流&#xff08;读写能力强&#xff0c;最常用&#xff09;&#xff1a;BufferedReader&#xff08;&#xff09;、BufferedWriter&#xff08;&#xff09;
注意&#xff1a;缓冲流的源必须是字节流或者字符流
案列&#xff1a;


数据的读写程序以及map的使用

package FileUtil;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;public class FileTest {static final Log logger &#61; LogFactory.getLog(FileTest.class);public static void main(String[] args) throws IOException {/****** 读入的数据存入list<>中******/List Data&#61;new ArrayList();/****** 创建所要读的文本******/File file &#61; new File("E:\\钱洋个人\\网络爬虫培训\\attentionword.txt");/****** FileReader顺序读取文件*****/FileReader fileReader &#61; new FileReader(file);/****** 根据FileReader创建的实例******/BufferedReader bufferedReader &#61;new BufferedReader(fileReader);String s&#61;null;while ((s&#61;bufferedReader.readLine())!&#61;null) {Data.add(s);logger.info(s);}bufferedReader.close();fileReader.close();/****** 文件读取第二种方式 ******/BufferedReader reader &#61; new BufferedReader( new InputStreamReader( new FileInputStream( new File( "E:\\钱洋个人\\网络爬虫培训\\b.txt")),"utf-8"));String s1&#61;null;while ((s1&#61;reader.readLine())!&#61;null) {Data.add(s1);logger.info(s1);}reader.close();/****** 文件写入第一种方式 ******//*File file1&#61;new File("D:\\钱洋个人\\网络爬虫培训\\b.txt","utf-8");FileOutputStream fileOutputStream&#61;new FileOutputStream(file1);OutputStreamWriter outputStreamWriter&#61;new OutputStreamWriter(fileOutputStream);BufferedWriter bufferedWriter1&#61;new BufferedWriter(outputStreamWriter);*//****** 文件写入快捷方式******/BufferedWriter writer &#61; new BufferedWriter( new OutputStreamWriter( new FileOutputStream( new File("D:\\钱洋个人\\网络爬虫培训\\d.txt")),"utf-8"));/****** map的使用 ******/Map map&#61;new HashMap();/****** map添加数据 ******/for (String data : Data){map.put(Integer.parseInt(data.split("\\s")[0]), data.substring(1,data.length()));}/****** map遍历数据 ******/for( Integer key : map.keySet() ){System.out.println("key:"&#43;key&#43;"\tvalue:"&#43;map.get(key));writer.append("key:"&#43;key&#43;"\tvalue:"&#43;map.get(key)&#43;"\r\n");}writer.close();}
}

推荐阅读
author-avatar
mobiledu2502929297
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有