Python 3 網絡爬蟲實戰

胡松濤

  • Python 3 網絡爬蟲實戰-preview-1
  • Python 3 網絡爬蟲實戰-preview-2
  • Python 3 網絡爬蟲實戰-preview-3
Python 3 網絡爬蟲實戰-preview-1

買這商品的人也買了...

商品描述

本書分為8章,內容包括Python的開發環境、爬蟲的基礎原理和概念、數據解析與存貯、簡單爬蟲的使用、PyQuery模塊、Scrapy框架、Beautiful Soup框架開發出不同的網絡爬蟲。用實例顯示出不同框架的優缺點,供讀者學習選擇。

目錄大綱

目  錄

 

 

第1章  Python環境配置 1

1.1  Python簡介 1

1.1.1  Python的歷史由來 1

1.1.2  Python的現狀 2

1.1.3  Python的應用 2

1.2  Python 3.8.0開發環境配置 4

1.2.1  在Windows下安裝Python 4

1.2.2  在Windows下安裝配置pip 8

1.2.3  在Linux下安裝Python 9

1.2.4  在Linux下安裝配置pip 11

1.2.5  永遠的hello world 15

1.3  本章小結 19

第2章  爬蟲基礎快速入門 20

2.1  HTTP基本原理 20

2.1.1  URI和URL 20

2.1.2  超文本 21

2.1.3  HTTP和HTTPS 21

2.1.4  HTTP請求過程 22

2.1.5  請求 24

2.1.6  響應 26

2.2  網頁基礎 27

2.2.1  網頁的組成 27

2.2.2  網頁的結構 28

2.2.3  節點樹及節點間的關系 30

2.2.4  選擇器 36

2.3  爬蟲的基本原理 37

2.3.1  爬蟲概述 37

2.3.2  能抓取什麽樣的數據 37

2.3.3  JavaScript渲染頁面 38

2.4  會話和Cookies 39

2.4.1  靜態網頁和動態網頁 40

2.4.2  無狀態HTTP 41

2.4.3  常見誤區 42

2.5  代理的基本原理 42

2.5.1  基本原理 42

2.5.2  代理的作用 43

2.5.3  代理分類 43

2.5.4  常見代理設置 44

2.6  本章小結 44

第3章  數據存儲與解析 45

3.1  文件存儲 45

3.1.1  TXT文件存儲 45

3.1.2  JSON文件存儲 49

3.1.3  CSV文件存儲 52

3.2  關系型數據庫存儲 57

3.2.1  連接數據庫 59

3.2.2  創建表 59

3.2.3  插入數據 60

3.2.4  瀏覽數據 61

3.2.5  修改數據 62

3.2.6  刪除數據 63

3.3  非關系型數據庫存儲 64

3.3.1  安裝數據庫 64

3.3.2  MongoDB概念解析 68

3.3.3  創建數據庫 68

3.3.4  創建集合 69

3.3.5  插入文檔 69

3.3.6  查詢集合數據 71

3.3.7  修改記錄 73

3.3.8  數據排序 74

3.3.9  刪除文檔 75

3.4  lxml模塊解析數據 76

3.4.1  安裝模塊 76

3.4.2  XPath常用規則 76

3.4.3  讀取文件進行解析 79

3.5  本章小結 81

第4章  Python爬蟲常用模塊 82

4.1  Python網絡爬蟲技術核心 82

4.1.1  Python網絡爬蟲實現原理 82

4.1.2  爬行策略 83

4.1.3  身份識別 83

4.2  Python 3標準庫之urllib.request模塊 84

4.2.1  urllib.request請求返回網頁 84

4.2.2  urllib.request使用代理訪問網頁 86

4.2.3  urllib.request修改header 89

4.3  Python 3標準庫之logging模塊 93

4.3.1  簡述logging模塊 93

4.3.2  自定義模塊myLog 97

4.4  re模塊(正則表達式) 100

4.4.1  re模塊(正則表達式的操作) 100

4.4.2  re模塊實戰 102

4.5  其他有用模塊 103

4.5.1  sys模塊(系統參數獲取) 103

4.5.2  time模塊(獲取時間信息) 105

4.6  本章小結 108

第5章  Scrapy爬蟲框架 109

5.1  安裝Scrapy 109

5.1.1  在Windows下安裝Scrapy環境 109

5.1.2  在Linux下安裝Scrapy 110

5.1.3  vim編輯器 111

5.2  Scrapy選擇器XPath和CSS 112

5.2.1  XPath選擇器 112

5.2.2  CSS選擇器 115

5.2.3  其他選擇器 116

5.3  Scrapy爬蟲實戰一:今日影視 117

5.3.1  創建Scrapy項目 117

5.3.2  Scrapy文件介紹 119

5.3.3  Scrapy爬蟲的編寫 121

5.4  Scrapy爬蟲實戰二:天氣預報 128

5.4.1  項目準備 129

5.4.2  創建並編輯Scrapy爬蟲 130

5.4.3  數據存儲到JSON 137

5.4.4  數據存儲到MySQL 139

5.5  Scrapy爬蟲實戰三:獲取代理 145

5.5.1  項目準備 145

5.5.2  創建編輯Scrapy爬蟲 146

5.5.3  多個Spider 152

5.5.4  處理Spider數據 156

5.6  Scrapy爬蟲實戰四:糗事百科 158

5.6.1  目標分析 158

5.6.2  創建編輯Scrapy爬蟲 159

5.6.3  Scrapy項目中間件——添加headers 160

5.6.4  Scrapy項目中間件——添加Proxy 163

5.7  Scrapy爬蟲實戰五:爬蟲攻防 166

5.7.1  創建一般爬蟲 166

5.7.2  封鎖間隔時間破解 169

5.7.3  封鎖Cookies破解 170

5.7.4  封鎖User-Agent破解 170

5.7.5  封鎖IP破解 176

5.8  本章小結 179

第6章  BeautifulSoup爬蟲 180

6.1  安裝BeautifulSoup環境 180

6.1.1  在Windows下安裝BeautifulSoup 180

6.1.2  在Linux下安裝BeautifulSoup 181

6.1.3  最強大的IDE——Eclipse 181

6.2  BeautifulSoup解析器 190

6.2.1  bs4解析器選擇 190

6.2.2  lxml解析器的安裝 191

6.2.3  使用bs4過濾器 192

6.3  bs4爬蟲實戰一:獲取百度貼吧內容 197

6.3.1  目標分析 197

6.3.2  項目實施 199

6.3.3  代碼分析 206

6.3.4  Eclipse調試 207

6.4  bs4爬蟲實戰二:獲取雙色球中獎信息 208

6.4.1  目標分析 209

6.4.2  項目實施 211

6.4.3  保存結果到Excel 214

6.4.4  代碼分析 219

6.5  bs4爬蟲實戰三:獲取起點小說信息 220

6.5.1  目標分析 220

6.5.2  項目實施 222

6.5.3  保存結果到MySQL 224

6.5.4  代碼分析 228

6.6  bs4爬蟲實戰四:獲取電影信息 229

6.6.1  目標分析 229

6.6.2  項目實施 230

6.6.3  bs4反爬蟲 233

6.6.4  代碼分析 235

6.7  bs4爬蟲實戰五:獲取音悅台榜單 236

6.7.1  目標分析 236

6.7.2  項目實施 237

6.7.3  代碼分析 242

6.8  本章小結 243

第7章  PyQuery模塊 244

7.1  PyQuery模塊 244

7.1.1  什麽是PyQuery模塊 244

7.1.2  PyQuery與其他工具 244

7.1.3  PyQuery模塊的安裝 245

7.2  PyQuery模塊的用法 247

7.2.1  使用字符串初始化 247

7.2.2  使用文件初始化 248

7.2.3  使用URL初始化 249

7.3  CSS篩選器的使用 250

7.3.1  基本CSS選擇器 250

7.3.2  查找節點 251

7.3.3  遍歷結果 255

7.3.4  獲取文本信息 256

7.4  PyQuery爬蟲實戰一:爬取百度風雲榜 258

7.5  PyQuery爬蟲實戰二:爬取微博熱搜 259

7.6  本章小結 260

第8章  Selenium模擬瀏覽器 261

8.1  安裝Selenium模塊 261

8.1.1  在Windows下安裝Selenium模塊 261

8.1.2  在Linux下安裝Selenium模塊 262

8.2  瀏覽器選擇 262

8.2.1  Webdriver支持列表 262

8.2.2  在Windows下安裝PhantomJS 263

8.2.3  在Linux下安裝PhantomJS 265

8.3  Selenium&PhantomJS抓取數據 266

8.3.1  獲取百度搜索結果 267

8.3.2  獲取搜索結果 269

8.3.3  獲取有效數據位置 271

8.3.4  從位置中獲取有效數據 273

8.4  Selenium&PhantomJS實戰一:獲取代理 274

8.4.1  準備環境 274

8.4.2  爬蟲代碼 276

8.4.3  代碼解釋 278

8.5  Selenium&PhantomJS實戰二:漫畫爬蟲 279

8.5.1  準備環境 279

8.5.2  爬蟲代碼 281

8.5.3  代碼解釋 283

8.6  本章小結 284

 

第9章  PySpider框架的使用 285

9.1  安裝PySpider 285

9.1.1  安裝PySpider 285

9.1.2  使用PyQuery測試 291

9.2  PySpider實戰一:優酷影視排行 293

9.2.1  創建項目 293

9.2.2  爬蟲編寫一:使用PySpider+PyQuery實現爬取 295

9.2.3  爬蟲編寫二:使用PySpider+ BeautifulSoup實現爬取 301

9.3  PySpider實戰二:電影下載 304

9.3.1  項目分析 304

9.3.2  爬蟲編寫 306

9.3.3  爬蟲運行、調試 312

9.3.4  刪除項目 317

9.4  PySpider實戰三:音悅台MusicTop 320

9.4.1  項目分析 320

9.4.2  爬蟲編寫 321

9.5  本章小結 325

第10章  圖形驗證識別技術 326

10.1  圖像識別開源庫:Tesseract 326

10.1.1  安裝Tesseract 326

10.1.2  設置環境變量 329

10.1.3  測試一:使用tesseract命令識別圖片中的字符 330

10.1.4  測試二:使用pytesseract模塊識別圖片中的英文字符 331

10.1.5  測試三:使用pytesseract模塊識別圖片中的中文文字 332

10.2  對網絡驗證碼的識別 333

10.2.1  圖形驗證實戰一:讀取網絡驗證碼並識別 333

10.2.2  圖形驗證實戰二:對驗證碼進行轉化 334

10.3  實戰三:破解滑塊驗證碼 335

10.3.1  所需工具 335

10.3.2  解決思路 335

10.3.3  編寫代碼 336

10.4  本章小結 341

第11章  爬取App 342

11.1  Charles的使用 342

11.1.1  下載安裝Charles 342

11.1.2  界面介紹 343

11.1.3  Proxy菜單 345

11.1.4  使用Charles進行PC端抓包 350

11.1.5  使用Charles進行移動端抓包 350

11.2  Mitmproxy的使用 351

11.2.1  安裝Mitmproxy 351

11.2.2  啟動Mitmproxy 352

11.2.3  編寫自定義腳本 354

11.2.4  Mitmproxy事件 355

11.2.5  實戰:演示Mitmproxy 358

11.3  實戰:使用Mitmdump爬取App 362

11.3.1  事先準備 363

11.3.2  帶腳本抓取 364

11.3.3  分析結果並保存 365

11.4  Appium的基本使用 366

11.4.1  安裝Appium—直接下載安裝包AppiumDesktop 366

11.4.2  安裝Appium—通過Node.js 368

11.4.3  Android 開發環境配置 368

11.4.4  iOS 開發環境配置 368

11.4.5  使用Appium 369

11.4.6  操作App 371

11.5  本章小結 374

第12章  爬蟲與反爬蟲 375

12.1  防止爬蟲IP被禁 375

12.1.1  反爬蟲在行動 375

12.1.2  爬蟲的應對 378

12.2  在爬蟲中使用Cookies 382

12.2.1  通過Cookies反爬蟲 382

12.2.2  帶Cookies的爬蟲 383

12.2.3  動態加載反爬蟲 386

12.2.4  使用瀏覽器獲取數據 386

12.3  本章小結 386