网络爬虫需要掌握的基础知识
目录
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中即可。如下图所示
#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();
}
}
