目錄
第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
· · · · · · (
收起)