java 爬虫_Java原生代码实现爬虫(爬取小说)
生活随笔
收集整理的這篇文章主要介紹了
java 爬虫_Java原生代码实现爬虫(爬取小说)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Java也能做爬蟲。
現在提到爬蟲人第一個想到的就是python,其實使用Java編寫爬蟲也是很好的選擇,Java成熟的爬蟲框架很多,下面給大家展示一個使用Java基礎語言編寫的爬取小說的案例:
實現功能:
爬取目標網站全本小說
代碼編寫環境:
JDK:1.8.0_191
Eclipse:2019-03 (4.11.0)
素材:
網站:http://www.shicimingju.com(如有侵權,請聯系我刪除,謝謝)
小說:三國演義
案例實現用到的技術:
正則表達式
Java網絡通信:URL
IO流
Map—HashMap
字符串操作
異常處理
代碼思路:
案例代碼:
案例代碼:package com.qianfeng.text;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileOutputStream;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.net.URL;import java.util.regex.Matcher;import java.util.regex.Pattern;public class GetText {public static void main(String[] args) {// 1、根據小說存放位置創建file對象File file = new File("D:Filehree_guo.txt");// 2、根據網頁結構編寫正則,創建pattern對象String regex_content = "(.*?)";String regex_title = "(.*?)";Pattern p_content = Pattern.compile(regex_content);Pattern p_title = Pattern.compile(regex_title);Matcher m_content;Matcher m_title;// 3、編寫循環,創建向所有小說章節頁面發起網絡請求的url對象for (int i = 1; i <= 120; i++) {System.out.println("第" + i + "章開始下載。。。");try {// 創建每一個頁面的url對象URL url = new URL("http://www.shicimingju.com/book/sanguoyanyi/" + i + ".html");// 創建網絡讀取流BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream(),"utf8"));// 4、讀取網絡內容網絡流BufferReaderString str = null;// 5、創建輸入流BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file,true)));while ((str = reader.readLine()) != null) {m_title = p_title.matcher(str.toString());m_content = p_content.matcher(str.toString());// 獲取小說標題并寫入本地文件Boolean isEx = m_title.find();if (isEx) {String title = m_title.group();// 清洗得到的數據title = title.replace("", "").replace("", "");System.out.println(title);writer.write("第" + i + "章:" + title + "");}while (m_content.find()) {String content = m_content.group();// 清洗得到的數據content = content.replace("", "").replace("
", "").replace(" ", "").replace("?", "");// 把小說內容寫入文件writer.write(content + ""); }}System.out.println("第" + i + "章下載完成.........");writer.write("");writer.close();reader.close();} catch (Exception e) {System.out.println("下載失敗");e.printStackTrace();}}}}運行效果:
總結
以上是生活随笔為你收集整理的java 爬虫_Java原生代码实现爬虫(爬取小说)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网易邮箱服务器怎么注册,免费网易域名邮箱
- 下一篇: Linux中vim命令详解