網路數據採集技術——Java網路爬蟲實戰

網路數據採集技術——Java網路爬蟲實戰

《網路數據採集技術——Java網路爬蟲實戰》是2020年1月電子工業出版社出版的圖書,作者是錢洋、姜元春。

基本介紹

  • 中文名:網路數據採集技術——Java網路爬蟲實戰
  • 作者:錢洋、姜元春
  • 出版社:電子工業出版社
  • 出版時間:2020年1月
  • 頁數:380 頁
  • 定價:79 元
  • 開本:16 開
  • ISBN:9787121376078
內容簡介,目錄,

內容簡介

本書以Java為開發語言,系統地介紹了網路爬蟲的理論知識和基礎工具,包括網路爬蟲涉及的Java基礎知識、HTTP協定基礎與網路抓包、網頁內容獲取、網頁內容解析和網路爬蟲數據存儲等。本書選取典型網站,採用案例講解的方式介紹網路爬蟲中涉及的問題,以增強讀者的動手實踐能力。同時,本書還介紹了3種Java網路爬蟲開源框架,即Crawler4j、WebCollector和WebMagic。本書適用於Java網路爬蟲開發的初學者和進階者;也可作為網路爬蟲課程教學的參考書,供高等院校文本挖掘、自然語言處理、大數據商務分析等相關學科的大學生和研究生參考使用;也可供企業網路爬蟲開發人員參考使用。

目錄

第1 章 網路爬蟲概述與原理 ............................................................................ 1
1.1 網路爬蟲簡介 ............................................................................................. 1
1.2 網路爬蟲分類 ............................................................................................. 2
1.3 網路爬蟲流程 ............................................................................................. 4
1.4 網路爬蟲的採集策略 ................................................................................. 5
1.5 學習網路爬蟲的建議 ................................................................................. 5
1.6 本章小結 ..................................................................................................... 6
第2 章 網路爬蟲涉及的Java 基礎知識 ........................................................... 7
2.1 開發環境的搭建 ......................................................................................... 7
2.1.1 JDK 的安裝及環境變數配置 .......................................................... 7
2.1.2 Eclipse 的下載 .................................................................................. 9
2.2 基本數據類型 ........................................................................................... 10
2.3 數組 ........................................................................................................... 11
2.4 條件判斷與循環 ....................................................................................... 12
2.5 集合 ........................................................................................................... 15
2.5.1 List 和Set 集合 .............................................................................. 15
2.5.2 Map 集合 ........................................................................................ 16
2.5.3 Queue 集合 ..................................................................................... 17
2.6 對象與類 ................................................................................................... 19
2.7 String 類 ..................................................................................................... 21
2.8 日期和時間處理 ....................................................................................... 23
2.9 正則表達式 ............................................................................................... 26
2.10 Maven 工程的創建 ................................................................................. 29
2.11 log4j 的使用 ............................................................................................ 33
2.12 本章小結 ................................................................................................. 40
第3 章 HTTP 協定基礎與網路抓包 ............................................................... 41
3.1 HTTP 協定簡介 ........................................................................................ 41
3.2 URL ........................................................................................................... 42
3.3 報文 ........................................................................................................... 44
3.4 HTTP 請求方法 ........................................................................................ 46
3.5 HTTP 狀態碼 ............................................................................................ 46
3.5.1 狀態碼2XX .................................................................................... 47
3.5.2 狀態碼3XX .................................................................................... 47
3.5.3 狀態碼4XX .................................................................................... 48
3.5.4 狀態碼5XX .................................................................................... 48
3.6 HTTP 信息頭 ............................................................................................ 48
3.6.1 通用頭 ............................................................................................ 49
3.6.2 請求頭 ............................................................................................ 52
3.6.3 回響頭 ............................................................................................ 55
3.6.4 實體頭 ............................................................................................ 56
3.7 HTTP 回響正文 ........................................................................................ 57
3.7.1 HTML ............................................................................................. 58
3.7.2 XML ............................................................................................... 60
3.7.3 JSON ............................................................................................... 61
3.8 網路抓包 ................................................................................................... 64
3.8.1 簡介 ................................................................................................ 64
3.8.2 使用情境 ........................................................................................ 65
3.8.3 瀏覽器實現網路抓包 ..................................................................... 65
3.8.4 其他網路抓包工具推薦 ................................................................. 70
3.9 本章小結 ................................................................................................... 70
第4 章 網頁內容獲取 .................................................................................... 71
4.1 Jsoup 的使用 ............................................................................................. 71
4.1.1 jar 包的下載 ................................................................................... 71
4.1.2 請求URL ....................................................................................... 72
4.1.3 設定頭信息 .................................................................................... 75
4.1.4 提交請求參數 ................................................................................ 78
4.1.5 逾時設定 ........................................................................................ 80
4.1.6 代理伺服器的使用 ......................................................................... 81
4.1.7 回響轉輸出流(圖片、PDF 等的下載)..................................... 83
4.1.8 HTTPS 請求認證 ........................................................................... 85
4.1.9 大檔案內容獲取問題 ..................................................................... 89
4.2 HttpClient 的使用 ...................................................................................... 91
4.2.1 jar 包的下載 ................................................................................... 91
4.2.2 請求URL ....................................................................................... 92
4.2.3 EntityUtils 類 .................................................................................. 97
4.2.4 設定頭信息 .................................................................................... 98
4.2.5 POST 提交表單 ............................................................................ 100
4.2.6 逾時設定 ...................................................................................... 103
4.2.7 代理伺服器的使用 ....................................................................... 105
4.2.8 檔案下載 ...................................................................................... 106
4.2.9 HTTPS 請求認證 ......................................................................... 108
4.2.10 請求重試 .................................................................................... 111
4.2.11 多執行緒執行請求 ......................................................................... 114
4.3 URLConnection 與HttpURLConnection ................................................ 117
4.3.1 實例化 .......................................................................................... 117
4.3.2 獲取網頁內容 .............................................................................. 118
4.3.3 GET 請求 ...................................................................................... 118
4.3.4 模擬提交表單(POST 請求) .................................................... 119
4.3.5 設定頭信息 .................................................................................. 120
4.3.6 連線逾時設定 .............................................................................. 121
4.3.7 代理伺服器的使用 ....................................................................... 122
4.3.8 HTTPS 請求認證 ......................................................................... 122
4.4 本章小結 ................................................................................................. 124
第5 章 網頁內容解析 .................................................................................. 125
5.1 HTML 解析 ............................................................................................. 125
5.1.1 CSS 選擇器 .................................................................................. 125
5.1.2 Xpath 語法 .................................................................................... 127
5.1.3 Jsoup 解析HTML ........................................................................ 128
5.1.4 HtmlCleaner 解析HTML ............................................................. 135
5.1.5 HTMLParser 解析HTML ............................................................ 139
5.2 XML 解析 ............................................................................................... 144
5.3 JSON 解析 ............................................................................................... 145
5.3.1 JSON 校正 .................................................................................... 145
5.3.2 org.json 解析JSON ...................................................................... 147
5.3.3 Gson 解析JSON........................................................................... 152
5.3.4 Fastjson 解析JSON ...................................................................... 157
5.3.5 網路爬蟲實戰演練 ....................................................................... 159
5.4 本章小結 ................................................................................................. 165
第6 章 網路爬蟲數據存儲 ........................................................................... 166
6.1 輸入流與輸出流 ..................................................................................... 166
6.1.1 簡介 .............................................................................................. 166
6.1.2 File 類 ........................................................................................... 166
6.1.3 檔案位元組流 .................................................................................. 169
6.1.4 檔案字元流 .................................................................................. 172
6.1.5 緩衝流 .......................................................................................... 176
6.1.6 網路爬蟲下載圖片實戰 ............................................................... 180
6.1.7 網路爬蟲文本存儲實戰 ............................................................... 184
6.2 Excel 存儲 ............................................................................................... 188
6.2.1 Jxl 的使用 ..................................................................................... 188
6.2.2 POI 的使用 ................................................................................... 191
6.2.3 爬蟲案例 ...................................................................................... 198
6.3 MySQL 數據存儲 ................................................................................... 202
6.3.1 資料庫的基本概念 ....................................................................... 203
6.3.2 SQL 語句基礎 .............................................................................. 203
6.3.3 Java 運算元據庫 .......................................................................... 207
6.3.4 爬蟲案例 ...................................................................................... 217
6.4 本章小結 ................................................................................................. 219
第7 章 網路爬蟲實戰項目 ........................................................................... 220
7.1 新聞數據採集 ......................................................................................... 220
7.1.1 採集的網頁 .................................................................................. 220
7.1.2 框架介紹 ...................................................................................... 222
7.1.3 程式編寫 ...................................................................................... 223
7.2 企業信息採集 ......................................................................................... 235
7.2.1 採集的網頁 .................................................................................. 235
7.2.2 框架介紹 ...................................................................................... 238
7.2.3 第一層信息採集........................................................................... 239
7.2.4 第二層信息採集........................................................................... 248
7.3 股票信息採集 ......................................................................................... 256
7.3.1 採集的網頁 .................................................................................. 256
7.3.2 框架介紹 ...................................................................................... 257
7.3.3 程式設計 ...................................................................................... 258
7.3.4 Quartz 實現定時調度任務 ........................................................... 267
7.4 本章小結 ................................................................................................. 271
第8 章 Selenium 的使用 ............................................................................. 272
8.1 Selenium 簡介 ......................................................................................... 272
8.2 Java Selenium 環境搭建 ......................................................................... 272
8.3 瀏覽器的操控 ......................................................................................... 274
8.4 元素定位 ................................................................................................. 276
8.4.1 id 定位 .......................................................................................... 276
8.4.2 name 定位 ..................................................................................... 277
8.4.3 class 定位 ...................................................................................... 278
8.4.4 tag name 定位 ............................................................................... 278
8.4.5 link text 定位 ................................................................................ 278
8.4.6 Xpath 定位 .................................................................................... 279
8.4.7 CSS 選擇器定位 .......................................................................... 279
8.5 模擬登錄 ................................................................................................. 280
8.6 動態載入JavaScript 數據(操作滾動條) ........................................... 283
8.7 隱藏瀏覽器 ............................................................................................. 285
8.8 截取驗證碼 ............................................................................................. 287
8.9 本章小結 ................................................................................................. 291
第9 章 網路爬蟲開源框架 ........................................................................... 292
9.1 Crawler4j 的使用 .................................................................................... 292
9.1.1 Crawler4j 簡介.............................................................................. 292
9.1.2 jar 包的下載 ................................................................................. 292
9.1.3 入門案例 ...................................................................................... 293
9.1.4 相關配置 ...................................................................................... 297
9.1.5 圖片的採集 .................................................................................. 300
9.1.6 數據採集入庫 .............................................................................. 304
9.2 WebCollector 的使用 .............................................................................. 312
9.2.1 WebCollector 簡介 ....................................................................... 312
9.2.2 jar 包的下載 ................................................................................. 313
9.2.3 入門案例 ...................................................................................... 313
9.2.4 相關配置 ...................................................................................... 318
9.2.5 HTTP 請求擴展............................................................................ 319
9.2.6 翻頁數據採集 .............................................................................. 327
9.2.7 圖片的採集 .................................................................................. 331
9.2.8 數據採集入庫 .............................................................................. 334
9.3 WebMagic 的使用 ................................................................................... 347
9.3.1 WebMagic 簡介 ............................................................................ 347
9.3.2 jar 包的下載 ................................................................................. 347
9.3.3 入門案例(翻頁數據採集) ....................................................... 347
9.3.4 相關配置 ...................................................................................... 351
9.3.5 數據存儲方式 .............................................................................. 352
9.3.6 數據採集入庫 .............................................................................. 355
9.3.7 圖片的採集 .................................................................................. 365
9.4 本章小結 ................................................................................................. 368,
第1 章 網路爬蟲概述與原理 ............................................................................ 1
1.1 網路爬蟲簡介 ............................................................................................. 1
1.2 網路爬蟲分類 ............................................................................................. 2
1.3 網路爬蟲流程 ............................................................................................. 4
1.4 網路爬蟲的採集策略 ................................................................................. 5
1.5 學習網路爬蟲的建議 ................................................................................. 5
1.6 本章小結 ..................................................................................................... 6
第2 章 網路爬蟲涉及的Java 基礎知識 ........................................................... 7
2.1 開發環境的搭建 ......................................................................................... 7
2.1.1 JDK 的安裝及環境變數配置 .......................................................... 7
2.1.2 Eclipse 的下載 .................................................................................. 9
2.2 基本數據類型 ........................................................................................... 10
2.3 數組 ........................................................................................................... 11
2.4 條件判斷與循環 ....................................................................................... 12
2.5 集合 ........................................................................................................... 15
2.5.1 List 和Set 集合 .............................................................................. 15
2.5.2 Map 集合 ........................................................................................ 16
2.5.3 Queue 集合 ..................................................................................... 17
2.6 對象與類 ................................................................................................... 19
2.7 String 類 ..................................................................................................... 21
2.8 日期和時間處理 ....................................................................................... 23
2.9 正則表達式 ............................................................................................... 26
2.10 Maven 工程的創建 ................................................................................. 29
2.11 log4j 的使用 ............................................................................................ 33
2.12 本章小結 ................................................................................................. 40
第3 章 HTTP 協定基礎與網路抓包 ............................................................... 41
3.1 HTTP 協定簡介 ........................................................................................ 41
3.2 URL ........................................................................................................... 42
3.3 報文 ........................................................................................................... 44
3.4 HTTP 請求方法 ........................................................................................ 46
3.5 HTTP 狀態碼 ............................................................................................ 46
3.5.1 狀態碼2XX .................................................................................... 47
3.5.2 狀態碼3XX .................................................................................... 47
3.5.3 狀態碼4XX .................................................................................... 48
3.5.4 狀態碼5XX .................................................................................... 48
3.6 HTTP 信息頭 ............................................................................................ 48
3.6.1 通用頭 ............................................................................................ 49
3.6.2 請求頭 ............................................................................................ 52
3.6.3 回響頭 ............................................................................................ 55
3.6.4 實體頭 ............................................................................................ 56
3.7 HTTP 回響正文 ........................................................................................ 57
3.7.1 HTML ............................................................................................. 58
3.7.2 XML ............................................................................................... 60
3.7.3 JSON ............................................................................................... 61
3.8 網路抓包 ................................................................................................... 64
3.8.1 簡介 ................................................................................................ 64
3.8.2 使用情境 ........................................................................................ 65
3.8.3 瀏覽器實現網路抓包 ..................................................................... 65
3.8.4 其他網路抓包工具推薦 ................................................................. 70
3.9 本章小結 ................................................................................................... 70
第4 章 網頁內容獲取 .................................................................................... 71
4.1 Jsoup 的使用 ............................................................................................. 71
4.1.1 jar 包的下載 ................................................................................... 71
4.1.2 請求URL ....................................................................................... 72
4.1.3 設定頭信息 .................................................................................... 75
4.1.4 提交請求參數 ................................................................................ 78
4.1.5 逾時設定 ........................................................................................ 80
4.1.6 代理伺服器的使用 ......................................................................... 81
4.1.7 回響轉輸出流(圖片、PDF 等的下載)..................................... 83
4.1.8 HTTPS 請求認證 ........................................................................... 85
4.1.9 大檔案內容獲取問題 ..................................................................... 89
4.2 HttpClient 的使用 ...................................................................................... 91
4.2.1 jar 包的下載 ................................................................................... 91
4.2.2 請求URL ....................................................................................... 92
4.2.3 EntityUtils 類 .................................................................................. 97
4.2.4 設定頭信息 .................................................................................... 98
4.2.5 POST 提交表單 ............................................................................ 100
4.2.6 逾時設定 ...................................................................................... 103
4.2.7 代理伺服器的使用 ....................................................................... 105
4.2.8 檔案下載 ...................................................................................... 106
4.2.9 HTTPS 請求認證 ......................................................................... 108
4.2.10 請求重試 .................................................................................... 111
4.2.11 多執行緒執行請求 ......................................................................... 114
4.3 URLConnection 與HttpURLConnection ................................................ 117
4.3.1 實例化 .......................................................................................... 117
4.3.2 獲取網頁內容 .............................................................................. 118
4.3.3 GET 請求 ...................................................................................... 118
4.3.4 模擬提交表單(POST 請求) .................................................... 119
4.3.5 設定頭信息 .................................................................................. 120
4.3.6 連線逾時設定 .............................................................................. 121
4.3.7 代理伺服器的使用 ....................................................................... 122
4.3.8 HTTPS 請求認證 ......................................................................... 122
4.4 本章小結 ................................................................................................. 124
第5 章 網頁內容解析 .................................................................................. 125
5.1 HTML 解析 ............................................................................................. 125
5.1.1 CSS 選擇器 .................................................................................. 125
5.1.2 Xpath 語法 .................................................................................... 127
5.1.3 Jsoup 解析HTML ........................................................................ 128
5.1.4 HtmlCleaner 解析HTML ............................................................. 135
5.1.5 HTMLParser 解析HTML ............................................................ 139
5.2 XML 解析 ............................................................................................... 144
5.3 JSON 解析 ............................................................................................... 145
5.3.1 JSON 校正 .................................................................................... 145
5.3.2 org.json 解析JSON ...................................................................... 147
5.3.3 Gson 解析JSON........................................................................... 152
5.3.4 Fastjson 解析JSON ...................................................................... 157
5.3.5 網路爬蟲實戰演練 ....................................................................... 159
5.4 本章小結 ................................................................................................. 165
第6 章 網路爬蟲數據存儲 ........................................................................... 166
6.1 輸入流與輸出流 ..................................................................................... 166
6.1.1 簡介 .............................................................................................. 166
6.1.2 File 類 ........................................................................................... 166
6.1.3 檔案位元組流 .................................................................................. 169
6.1.4 檔案字元流 .................................................................................. 172
6.1.5 緩衝流 .......................................................................................... 176
6.1.6 網路爬蟲下載圖片實戰 ............................................................... 180
6.1.7 網路爬蟲文本存儲實戰 ............................................................... 184
6.2 Excel 存儲 ............................................................................................... 188
6.2.1 Jxl 的使用 ..................................................................................... 188
6.2.2 POI 的使用 ................................................................................... 191
6.2.3 爬蟲案例 ...................................................................................... 198
6.3 MySQL 數據存儲 ................................................................................... 202
6.3.1 資料庫的基本概念 ....................................................................... 203
6.3.2 SQL 語句基礎 .............................................................................. 203
6.3.3 Java 運算元據庫 .......................................................................... 207
6.3.4 爬蟲案例 ...................................................................................... 217
6.4 本章小結 ................................................................................................. 219
第7 章 網路爬蟲實戰項目 ........................................................................... 220
7.1 新聞數據採集 ......................................................................................... 220
7.1.1 採集的網頁 .................................................................................. 220
7.1.2 框架介紹 ...................................................................................... 222
7.1.3 程式編寫 ...................................................................................... 223
7.2 企業信息採集 ......................................................................................... 235
7.2.1 採集的網頁 .................................................................................. 235
7.2.2 框架介紹 ...................................................................................... 238
7.2.3 第一層信息採集........................................................................... 239
7.2.4 第二層信息採集........................................................................... 248
7.3 股票信息採集 ......................................................................................... 256
7.3.1 採集的網頁 .................................................................................. 256
7.3.2 框架介紹 ...................................................................................... 257
7.3.3 程式設計 ...................................................................................... 258
7.3.4 Quartz 實現定時調度任務 ........................................................... 267
7.4 本章小結 ................................................................................................. 271
第8 章 Selenium 的使用 ............................................................................. 272
8.1 Selenium 簡介 ......................................................................................... 272
8.2 Java Selenium 環境搭建 ......................................................................... 272
8.3 瀏覽器的操控 ......................................................................................... 274
8.4 元素定位 ................................................................................................. 276
8.4.1 id 定位 .......................................................................................... 276
8.4.2 name 定位 ..................................................................................... 277
8.4.3 class 定位 ...................................................................................... 278
8.4.4 tag name 定位 ............................................................................... 278
8.4.5 link text 定位 ................................................................................ 278
8.4.6 Xpath 定位 .................................................................................... 279
8.4.7 CSS 選擇器定位 .......................................................................... 279
8.5 模擬登錄 ................................................................................................. 280
8.6 動態載入JavaScript 數據(操作滾動條) ........................................... 283

相關詞條

熱門詞條

聯絡我們