在网络爬虫中,经常需要读取数据和写入数据。例如,将存储在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(); } }