在网络爬虫中,经常需要读取数据和写入数据。例如,将存储在txt文档中的待采集URL列表读入程序;将采集的图片、PDF和压缩包等文件写入指定目录。这些操作,都依赖于输入流和输出流。
本专栏主要以介绍网络爬虫技术为主,因而,本小节不再详细介绍输入流和输出流,仅以程序5-1,来演示将采集到的URL存储到txt文件中,代码示例如下。
//程序5-1
public class TxtStorage {
public static void main(String[] args) throws IOException {
//设置路径
String file = "/Users/steven/Documents/代码/project/spider/src/main/java/com/topicBet/test.txt";
RandomAccessFile rf = new RandomAccessFile(file, "rw");
//通过Jsoup创建和url的连接
Connection connection = Jsoup.connect("https://searchcustomerexperience.techtarget.com/info/news");
//获取网页的Document对象
Document document = connection.get();
Elements aList = document.getElementsByTag("a");
if(aList.size()>0){
for(int i = 0;i < aList.size();i++){
Element a = aList.get(i);
if(a != null){
String url = a.attr("href");
if(url.contains("http")) {
rf.seek(rf.length());
rf.write((url + "\n").getBytes());
}
}
}
}
//关闭文件流
rf.close();
}
}