
劉碩
本書深入系統地介紹了Python流行框架Scrapy的相關技術及使用技巧。全書共14章,從邏輯上可分爲基礎篇和高級篇兩部分,基礎篇重點介紹Scrapy的核心元素,如spider、selector、item、link等;高級篇講解爬蟲的高級話題,如登錄認證、文件下載、執行JavaScript、動態網頁爬取、使用HTTP代理、分佈式爬蟲的編寫等,並配合項目案例講解,包括供練習使用的網站,以及京東、知乎、豆瓣、360爬蟲案例等。 本書案例豐富,注重實踐,代碼註釋詳盡,適合有一定Python語言基礎,想學習編寫複雜網絡爬蟲的讀者使用。
對scrapy框架進行了深入淺出的講解,對於新手可能踩的坑會着重的點出來,比如數據導入MySQL不能每個item插入都執行commit,否則會造成堵塞(這個問題一直困擾着我,所以我後來用該框架一直都採用寫文件而不是寫入數據庫),同時給出瞭解決方案——採用twisted異步方式adbapi寫入數據庫。 如果在幾年前剛入門scrapy框架時能夠遇到這本書,我想那時的我應該會少走一些彎路,可惜當時市面上關於scrapy深入講解的書寥寥無幾。 不過如今也不錯,最近準備梳理和重構一個項目,準備採用scrapy,然後有幸讀到這本書,用來回顧和鞏固已有些陌生的scrapy框架還是不錯的。
本書結合實際需求,對Scrapy的知識點由淺入深講解,並結合實例的講解,可以讓讀者更好的理解掌握,還對源碼進行簡單講解,也爲以後深入學習打下基礎。基本涵蓋了爬蟲的很多情況,讓讀者有了思路,後期遇到也可以有解決問題的思路了。
很多東西來源於文檔和源碼,適合對scrapy有一定基礎的人深入瞭解scrapy。文中還帶着很多項目實戰,受益匪淺
介紹了scnapy的基本使用,算是入門書籍,有相關的過程和實例。
Scrapy的確是個非常簡單易用又實用的爬蟲框架,dom解析、cookies、proxy、js渲染解析,這些功能都有,書中內容中還有一些模擬登陸、驗證碼識別、分佈式抓取、異步執行等實戰價值不錯的示例,代碼簡單明瞭
對於入手scrapy框架的小白們非常值得一讀,每章節內容不會太多,而且相比於一些國外書籍如《精通Python爬蟲框架scrapy》來說,在表述上更符合國人的習慣。新手推薦:先看上面說的那本書的第二、第三章,瞭解靜態頁面下如何爬取;然後看本書的第11章,學習動態頁面應該如何處理,同時返回本書第三章看看如何利用selector來進行頁面內容的抽取,不僅僅通過xpath方法,也可以通過css方法。根據這些內容跑通一些簡單示例後,就可以根據需求慢慢鑽研更深入的東西了
精通Scrapy網絡爬蟲 劉碩 136個想法 ◆ 第1章 初識Scrapy >> 第1章 初識Scrapy ◆ 1.1 網絡爬蟲是什麼 >> 1.1 網絡爬蟲是什麼 >> 1.下載頁面 >> 2.提取頁面中的數據 >> 3.提取頁面中的鏈接 ◆ 1.2 Scrapy簡介及安裝 >> 1.2 Scrapy簡介及安裝 ◆ 1.3 編寫第一個Scrapy爬蟲 >> 1.3 編寫第一個Scrapy爬蟲 >> 1.3.1 項目需求 >> 1.3.2 創建項目 >> 1.3.3 分析頁面 >> 1.3.4 實現Spider >> 1.3.5 運行爬蟲 ◆ 1.4 本章小結 >> 1.4 本章小結 ◆ 第2章 編寫Spider >> 第2章 編寫Spider ◆ 2.1 Scrapy框架結構及工作原理 >> 2.1 Scrapy框架結構及工作原理 ◆ 2.2 Request和Response對象 >> 2.2 Request和Response對象 >> 2.2.1 Request對象 >> 2.2.2 Response對象 ◆ 2.3 Spider開發流程 >> 2.3 Spider開發流程 >> 2.3.1 繼承scrapy.Spider >> 2.3.2 爲Spider命名 >> 2.3.3 設定起始爬取點 >> 2.3.4 實現頁面解析函數 ◆ 2.4 本章小結 >> 2.4 本章小結 ◆ 第3章 使用Selector提取數據 >> 第3章 使用Selector提取數據 ◆ 3.1 Selector對象 >> 3.1 Selector對象 >> 3.1.1 創建對象 >> 3.1.2 選中數據 >> 3.1.3 提取數據 ◆ 3.2 Response內置Selector >> 3.2 Response內置Selector ◆ 3.3 XPath >> 3.3 XPath >> 3.3.1 基礎語法表3-1列出了XPath常用的基本語法 >> 3.3.2 常用函數 ◆ 3.4 CSS選擇器 >> 3.4 CSS選擇器 ◆ 3.5 本章小結 >> 3.5 本章小結 ◆ 第4章 使用Item封裝數據 >> 第4章 使用Item封裝數據 ◆ 4.1 Item和Field >> 4.1 Item和Field ◆ 4.2 拓展Item子類 >> 4.2 拓展Item子類 ◆ 4.3 Field元數據 >> 4.3 Field元數據 ◆ 4.4 本章小結 >> 4.4 本章小結 ◆ 第5章 使用Item Pipeline處理數據 >> 第5章 使用Item Pipeline處理數據 ◆ 5.1 Item Pipeline >> 5.1 Item Pipeline >> 5.1.1 實現Item Pipeline ◆ 5.2 更多例子 >> 5.2 更多例子 >> 5.2.1 過濾重複數據 >> 5.2.2 將數據存入MongoDB ◆ 5.3 本章小結 >> 5.3 本章小結 ◆ 第6章 使用LinkExtractor提取鏈接 >> 第6章 使用LinkExtractor提取鏈接 ◆ 6.1 使用LinkExtractor >> 6.1 使用LinkExtractor ◆ 6.2 描述提取規則 >> 6.2 描述提取規則 ◆ 6.3 本章小結 >> 6.3 本章小結 ◆ 第7章 使用Exporter導出數據 >> 第7章 使用Exporter導出數據 ◆ 7.1 指定如何導出數據 >> 7.1 指定如何導出數據 >> 7.1.1 命令行參數 >> 7.1.2 配置文件 ◆ 7.2 添加導出數據格式 >> 7.2 添加導出數據格式 >> 7.2.1 源碼參考 >> 7.2.2 實現Exporter ◆ 7.3 本章小結 >> 7.3 本章小結 ◆ 第8章 項目練習 >> 第8章 項目練習 ◆ 8.1 項目需求 >> 8.1 項目需求 ◆ 8.2 頁面分析 >> 8.2 頁面分析 ◆ 8.3 編碼實現 >> 8.3 編碼實現 ◆ 8.4 本章小結 >> 8.4 本章小結 ◆ 第9章 下載文件和圖片 >> 第9章 下載文件和圖片 ◆ 9.1 FilesPipeline和ImagesPipeline >> 9.1 FilesPipeline和ImagesPipeline >> 9.1.1 FilesPipeline使用說明 >> 9.1.2 ImagesPipeline使用說明 ◆ 9.2 項目實戰:爬取matplotlib例子源碼文件 >> 9.2 項目實戰:爬取matplotlib例子源碼文件 >> 9.2.1 項目需求 >> 9.2.2 頁面分析 >> 9.2.3 編碼實現 ◆ 9.3 項目實戰:下載360圖片 >> 9.3 項目實戰:下載360圖片 >> 9.3.1 項目需求 >> 9.3.2 頁面分析 >> 9.3.3 編碼實現 ◆ 9.4 本章小結 >> 9.4 本章小結 ◆ 第10章 模擬登錄 >> 第10章 模擬登錄 ◆ 10.1 登錄實質 >> 10.1 登錄實質 ◆ 10.2 Scrapy模擬登錄 >> 10.2 Scrapy模擬登錄 >> 10.2.1 使用FormRequest >> 10.2.2 實現登錄Spider ◆ 10.3 識別驗證碼 >> 10.3 識別驗證碼 >> 10.3.1 OCR識別 >> 10.3.2 網絡平臺識別 >> 10.3.3 人工識別 ◆ 10.4 Cookie登錄 >> 10.4 Cookie登錄 >> 10.4.1 獲取瀏覽器Cookie >> 10.4.2 CookiesMiddleware源碼分析 >> 10.4.3 實現BrowserCookiesMiddleware >> 10.4.4 爬取知乎個人信息 ◆ 10.5 本章小結 >> 10.5 本章小結 ◆ 第11章 爬取動態頁面 >> 第11章 爬取動態頁面 ◆ 11.1 Splash渲染引擎 >> 11.1 Splash渲染引擎 >> 11.1.1 render.html端點 >> 11.1.2 execute端點 ◆ 11.2 在Scrapy中使用Splash >> 11.2 在Scrapy中使用Splash ◆ 11.3 項目實戰:爬取toscrape中的名人名言 >> 11.3 項目實戰:爬取toscrape中的名人名言 >> 11.3.1 項目需求 >> 11.3.2 頁面分析 >> 11.3.3 編碼實現 ◆ 11.4 項目實戰:爬取京東商城中的書籍信息 >> 11.4 項目實戰:爬取京東商城中的書籍信息 >> 11.4.1 項目需求 >> 11.4.2 頁面分析 >> 11.4.3 編碼實現 ◆ 11.5 本章小結 >> 11.5 本章小結 ◆ 第12章 存入數據庫 >> 第12章 存入數據庫 ◆ 12.1 SQLite >> 12.1 SQLite ◆ 12.2 MySQL >> 12.2 MySQL ◆ 12.3 MongoDB >> 12.3 MongoDB ◆ 12.4 Redis >> 12.4 Redis ◆ 12.5 本章小結 >> 12.5 本章小結 ◆ 第13章 使用HTTP代理 >> 第13章 使用HTTP代理 ◆ 13.1 HttpProxyMiddleware >> 13.1 HttpProxyMiddleware >> 13.1.1 使用簡介 >> 13.1.2 源碼分析 ◆ 13.2 使用多個代理 >> 13.2 使用多個代理 ◆ 13.3 獲取免費代理 >> 13.3 獲取免費代理 ◆ 13.4 實現隨機代理 >> 13.4 實現隨機代理 ◆ 13.5 項目實戰:爬取豆瓣電影信息 >> 13.5 項目實戰:爬取豆瓣電影信息 >> 13.5.1 項目需求 >> 13.5.2 頁面分析 >> 13.5.3 編碼實現 ◆ 13.6 本章小結 >> 13.6 本章小結 ◆ 第14章 分佈式爬取 >> 第14章 分佈式爬取 ◆ 14.1 Redis的使用 >> 14.1 Redis的使用 >> 14.1.1 安裝Redis >> 14.1.2 Redis基本命令 >> 14.1.3 Python訪問Redis ◆ 14.2 scrapy-redis源碼分析 >> 14.2 scrapy-redis源碼分析 >> 14.2.1 分配爬取任務部分 >> 14.2.2 匯總爬取數據部分 ◆ 14.3 使用scrapy-redis進行分佈式爬取 >> 14.3 使用scrapy-redis進行分佈式爬取 >> 14.3.1 搭建環境 >> 14.3.2 項目實戰 ◆ 14.4 本章小結 >> 14.4 本章小結
講scrapy的書籍不多,這本書講得已經很好了,入門非常友好,跟着作者的步伐,可以一步步地實現下來!
初學者挺適合看,基本就是官方文檔的翻譯。
看完了這本書,作者應該是讀過scrapy源碼的。講解的很實用,深度也可以,值得閱讀。唯一覺得美中不足的是,爬取的數據顯示內容截取的有點多,如果更少點就更好了。