DataLearner 标志DataLearnerAI
最新AI资讯
大模型排行榜
大模型评测基准
大模型列表
大模型对比
资源中心
工具
语言中文
DataLearner 标志DataLearner AI

专注大模型评测、数据资源与实践教学的知识平台,持续更新可落地的 AI 能力图谱。

产品

  • 评测榜单
  • 模型对比
  • 数据资源

资源

  • 部署教程
  • 原创内容
  • 工具导航

关于

  • 关于我们
  • 隐私政策
  • 数据收集方法
  • 联系我们

© 2026 DataLearner AI. DataLearner 持续整合行业数据与案例,为科研、企业与开发者提供可靠的大模型情报与实践指南。

隐私政策服务条款
  1. 首页/
  2. 博客列表/
  3. 博客详情

网络爬虫需要掌握的基础知识

2016-09-08 22:06:08
2,750 阅读
Java网络爬虫

目录

  • 1、Java中maven的使用
  • #2、log4j
  • #3、输入流与输出流
这里写图片描述
这里写图片描述
这张图为我给自己研究所人讲网络爬虫的一个流程,本人也将按照这个流程来讲网络爬虫,如果你的基础较好,可以直接跳过相关流程。

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.jsoup</groupId>
  		<artifactId>jsoup</artifactId>
  		<version>  1.8.2</version>
  	</dependency>
这里写图片描述
这里写图片描述

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

这里写图片描述
这里写图片描述
#  #2、log4j ##log4j的介绍 log4j是Apache下的一个开源项目,用来控制日志信息,方便的日志记录。之所以要记录日志,可以详细的记录程序发生了什么,在哪里发生的,有没有错误等。在使用log4j之前需要使用maven引入log4j的jar包。 其中,日志的输出级别(%p ):DEBUG,INFO,WARN,ERROR,FATAL(每个严重的错误事件将会导致应用程序的退出) ##log4j提供的几种方法 (1)Appender方法:日志输出目的地 org.apache.log4j.ConsoleAppender(控制台), org.apache.log4j.FileAppender(文件), org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件), org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件), org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)。 (2)Layout方法:日志输出格式 org.apache.log4j.HTMLLayout(以HTML表格形式布局), org.apache.log4j.PatternLayout(可以灵活地指定布局模式), org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串), org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)。 ##使用步骤 (1)导入log4j-1.2.8.jar包(我们使用maven)。 (2)在根目录src下建立并配置log4j.properties,如下图所示为我的配置。 (3)使用(演示),如下图所示。 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、输入流与输出流 这里也不做很多介绍,简单一点,输入流、输出流就是文件的读与写,当然这样理解比较狭隘。详细的,大家可以看http://blog.csdn.net/liuxiaogangqq/article/details/25892667。这篇博客,总结的很全面,值得学习。 (1)读取文件(输入流read())、写文件(输出流write()) (2)文件字节流:FileInputStream()、 FileOutputStream() (3)文件字符流: FileReader()、FileWriter () (4)缓冲流(读写能力强,最常用):BufferedReader()、BufferedWriter() 注意:缓冲流的源必须是字节流或者字符流 案列: ##数据的读写程序以及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 = LogFactory.getLog(FileTest.class);
	public static void main(String[] args) throws IOException {
		/****** 读入的数据存入list<>中******/
		List<String> Data=new ArrayList<String>();
		/****** 创建所要读的文本******/
		File file = new File("E:\\钱洋个人\\网络爬虫培训\\attentionword.txt");
		/****** FileReader顺序读取文件*****/
		FileReader fileReader = new FileReader(file);
 		/****** 根据FileReader创建的实例******/
		BufferedReader bufferedReader =new BufferedReader(fileReader);
		String s=null;
		while ((s=bufferedReader.readLine())!=null) {
			Data.add(s);
			logger.info(s);
		}
		bufferedReader.close();
		fileReader.close();
		/****** 文件读取第二种方式  ******/
		BufferedReader reader = new BufferedReader( new InputStreamReader( new FileInputStream( new File( "E:\\钱洋个人\\网络爬虫培训\\b.txt")),"utf-8"));
		String s1=null;
		while ((s1=reader.readLine())!=null) {
			Data.add(s1);
			logger.info(s1);
		}
		reader.close();

		/****** 文件写入第一种方式  ******/
		/*File file1=new File("D:\\钱洋个人\\网络爬虫培训\\b.txt","utf-8");
		FileOutputStream fileOutputStream=new FileOutputStream(file1);
		OutputStreamWriter outputStreamWriter=new OutputStreamWriter(fileOutputStream);
		BufferedWriter bufferedWriter1=new BufferedWriter(outputStreamWriter);*/
		/****** 文件写入快捷方式******/
		BufferedWriter writer = new BufferedWriter( new OutputStreamWriter( new FileOutputStream( new File("D:\\钱洋个人\\网络爬虫培训\\d.txt")),"utf-8"));
		/****** map的使用 ******/
		Map<Integer,String> map=new HashMap<Integer,String>();
		/****** 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:"+key+"\tvalue:"+map.get(key));
			writer.append("key:"+key+"\tvalue:"+map.get(key)+"\r\n");
		}
		writer.close();
	}
}

DataLearner 官方微信

欢迎关注 DataLearner 官方微信,获得最新 AI 技术推送

DataLearner 官方微信二维码
返回博客列表

相关博客

  • 2022年了,Java和Java的生态怎么样了?
  • Java中自增操作i++与++i的区别
  • Java类型转换中valueOf方法和parseInt方法的区别
  • 《Effective Java 第三版》笔记之七 消除过期的对象引用
  • 《Effective Java 第三版》笔记之六 避免创建不必要的对象
  • Java入门基础笔记-11
  • Java入门基础笔记-10
  • Java入门基础笔记-9

热门博客

  • 1Dirichlet Distribution(狄利克雷分布)与Dirichlet Process(狄利克雷过程)
  • 2回归模型中的交互项简介(Interactions in Regression)
  • 3贝塔分布(Beta Distribution)简介及其应用
  • 4矩母函数简介(Moment-generating function)
  • 5普通最小二乘法(Ordinary Least Squares,OLS)的详细推导过程
  • 6使用R语言进行K-means聚类并分析结果
  • 7深度学习技巧之Early Stopping(早停法)
  • 8手把手教你本地部署清华大学的ChatGLM-6B模型——Windows+6GB显卡本地部署