1. 程式人生 > >用 Python 寫網路爬蟲 第2版

用 Python 寫網路爬蟲 第2版

內容簡介

暢銷的 Python 網路爬蟲開發實戰圖書全新升級版,上一版年銷量近 40000 冊。

針對 Python 3.6 版本編寫。

Internet 上包含了許多有用的資料,其中大部分是可以免費公開訪問的。但是,這些資料不容易使用,它們內嵌在網站的架構和樣式中,在提取時也需要多加小心。網路爬取技術作為一種收集和理解網路上海量資訊的方式,正變得越來越有用。

本書是使用 Python 3.6 的新特性來爬取網路資料的入門指南。本書講解了從靜態網站提取資料的方法,以及如何使用資料庫和檔案快取技術來節省時間並管理伺服器負載,然後介紹瞭如何使用瀏覽器、爬蟲和併發爬蟲開發一個更為複雜的爬蟲。

藉助於 PyQt 和 Selenium,你可以決定何時以及如何從依賴 JavaScript 的網站上爬取資料,以及更好地理解在受 CAPTCHA 保護的複雜網站上提交表單的方法。本書還講解了使用 Python 包(比如 mechanize)進行自動化處理的方法、使用 Scrapy 庫建立基於類的爬蟲的方法,以及如何在真實的網站上實施所學的爬蟲技巧。

本書最後還涵蓋了使用爬蟲對網站進行測試、遠端爬取技術、影象處理以及其他相關的主題。

適讀人群:Python 開發人員、搜尋引擎開發人員

作者簡介

Katharine Jarmul,德國柏林的一位資料科學家和 Python 支持者。她經營了一家資料科學諮詢公司——Kjamistan,為不同規模的企業提供諸如資料抽取、採集以及建模的服務。她從2008年開始使用 Python 進行程式設計,從2010年開始使用 Python 抓取網站,並且在使用網路爬蟲進行資料分析和機器學習的不同規模的初創企業中工作過。讀者可以通過 Twitter(@kjam)關注她的想法以及動態。

Richard Lawson

來自澳大利亞,畢業於墨爾本大學電腦科學專業。畢業後,他創辦了一家專注於網路爬蟲的公司,為超過50個國家的業務提供遠端工作。他精通世界語,可以使用漢語和韓語對話,並且積極投身於開源軟體事業。他目前正在牛津大學攻讀研究生學位,並利用業餘時間研發自主無人機。

本書內容

前言

網際網路包含了迄今為止最有用的資料集,並且大部分可以免費公開訪問。但是,這些資料難以複用。它們被嵌入在網站的結構和樣式當中,需要抽取出來才能使用。從網頁中抽取資料的過程又稱為網路爬蟲,隨著越來越多的資訊被髮布到網路上,網路爬蟲也變得越來越有用。

本書使用的所有程式碼均已使用 Python 3.4+ 測試通過,並且可以在非同步社群

下載到。

本書內容

第1章,網路爬蟲簡介,介紹了什麼是網路爬蟲,以及如何爬取網站。

第2章,資料抓取,展示瞭如何使用幾種庫從網頁中抽取資料。

第3章,下載快取,介紹瞭如何通過快取結果避免重複下載的問題。

第4章,併發下載,教你如何通過並行下載網站加速資料抓取。

第5章,動態內容,介紹瞭如何通過幾種方式從動態網站中抽取資料。

第6章,表單互動,展示瞭如何使用輸入及導航等表單進行搜尋和登入。

第7章,驗證碼處理,闡述瞭如何訪問被驗證碼影象保護的資料。

第8章,Scrapy,介紹瞭如何使用 Scrapy 進行快速並行的抓取,以及使用 Portia 的 Web 介面構建網路爬蟲。

第9章,綜合應用,對你在本書中學到的網路爬蟲技術進行總結。

閱讀本書的前提

為了有助於闡明爬取示例,我們建立了一個示例網站,其網址為http://example.python-scraping.com。用於生成該網站的原始碼可以從非同步社群獲取到,其中包含了如何自行搭建該網站的說明。如果你願意的話,也可以自己搭建它。

我們決定為本書示例搭建一個定製網站,而不是抓取活躍的網站,這樣我們就對環境擁有了完全控制。這種方式提供了穩定性,因為活躍的網站要比書中的定製網站更新更加頻繁,當你嘗試執行爬蟲示例時,程式碼可能已經無法工作。另外,定製網站允許我們自定義示例,便於闡釋特定技巧並避免其他干擾。最後,活躍的網站可能並不歡迎我們使用它作為學習網路爬蟲的物件,並且可能會封禁我們的爬蟲。使用我們自己定製的網站可以規避這些風險,不過在這些例子中學到的技巧確實也可以應用到這些活躍的網站當中。

本書讀者

本書假設你已經擁有一定的程式設計經驗,並且本書很可能不適合零基礎的初學者閱讀。本書中的網路爬蟲示例需要你具有 Python 語言以及使用 pip 安裝模組的能力。如果你想複習一下這些知識,有一本非常好的免費線上書籍可以使用,其書名為 Dive Into Python,作者為 Mark Pilgrim,讀者可在網上搜索並閱讀。這本書也是我初學 Python 時所使用的資源。

此外,這些例子還假設你已經瞭解網頁是如何使用 HTML 進行構建並通過 JavaScript 進行更新的知識。關於 HTTP、CSS、AJAX、WebKit 以及 Redis 的既有知識也很有用,不過它們不是必需的,這些技術會在需要使用時進行介紹。

第1章 網路爬蟲簡介
第2章 資料抓取
第3章 下載快取
第4章 併發下載
第5章 動態內容
第6章 表單互動
第7章 驗證碼處理
第8章 Scrapy
第9章 綜合應用

閱讀全文: http://gitbook.cn/gitchat/geekbook/5bd683988b3f803a63ef9f98