一篇非常棒的安裝Python及爬蟲入門博文!

一篇非常棒的安裝Python及爬蟲入門博文!

一. 大數據及數據挖掘基礎(私信小編007即可獲取大量Python學習資料!)

第一部分主要簡單介紹三個問題:

1、什麼是大數據?

2、什麼是數據挖掘?

3、大數據和數據挖掘的區別?

1、大數據(Big Data)

大數據(big data)指無法在一定時間範圍內用常規軟件工具進行捕捉、管理和處理的數據集合,是需要新處理模式才能具有更強的決策力、洞察發現力和流程優化能力來適應海量、高增長率和多樣化的信息資產。

下圖是大數據經典的4V特徵。


一篇非常棒的安裝Python及爬蟲入門博文!

IBM大數據庫框架及可視化技術,大數據常用:Hadoop、Spark,現在更多的是實時數據分析,包括淘寶、京東、附近美食等。

一篇非常棒的安裝Python及爬蟲入門博文!

下圖是大數據的一些應用

一篇非常棒的安裝Python及爬蟲入門博文!


一篇非常棒的安裝Python及爬蟲入門博文!

說到大數據,就不得不提Hadoop,而說到Hadoop,又不得不提Map-Reduce。


一篇非常棒的安裝Python及爬蟲入門博文!

MapReduce是一個軟件框架由上千個商用機器組成的大集群上,並以一種可靠的,具有容錯能力的方式並行地處理上TB級別的海量數據集。MapReduce的思想是“分而治之”。Mapper負責“分,Reducer負責對map階段的結果進行彙總。

2、數據挖掘(Data Mining)

數據挖掘(Data Mining):數據庫、機器學習、人工智能、統計學的交叉學科。

數據挖掘需要發現有價值的知識,同時最頂端都是具有智慧的去發現知識及有價值的信息。


一篇非常棒的安裝Python及爬蟲入門博文!


一篇非常棒的安裝Python及爬蟲入門博文!

因為它主要是針對網頁數據進行的大數據分析,需要Web Mining分類如下:


一篇非常棒的安裝Python及爬蟲入門博文!

Web挖掘主要分為三類:Web日誌挖掘、Web內容挖掘、Web結構挖掘。


一篇非常棒的安裝Python及爬蟲入門博文!

3、機器學習

講到機器學習和數據挖掘相關的知識,通常都會補充兩幅圖片。很形象的表示了計算機智能化與人類傳統知識的類比。


一篇非常棒的安裝Python及爬蟲入門博文!


一篇非常棒的安裝Python及爬蟲入門博文!

二. 安裝Python及基礎知識

1、安裝Python

在開始使用Python編程之前,需要介紹Python的安裝過程。python解釋器在Linux中可以內置使用安裝

步驟如下:

第一步:打開Web瀏覽器並訪問官網;


一篇非常棒的安裝Python及爬蟲入門博文!

第二步:

在官網首頁點擊Download鏈接,進入下載界面,選擇Python軟件的版本,作者選擇下載python 2.7.8,點擊“Download”鏈接。

Python下載地址:

第三步:選擇文件下載地址,並下載文件。

第四步:雙擊下載的“python-2.7.8.msi”軟件,並對軟件進行安裝。


一篇非常棒的安裝Python及爬蟲入門博文!

第五步:在Python安裝嚮導中選擇默認設置,點擊“Next”,選擇安裝路徑,這裡設置為默認的安裝路徑“C:\Python27”,點擊“Next”按鈕,如圖所示。

注意1:建議將Python安裝在C盤下,通常路徑為C:\Python27,不要存在中文路徑。

一篇非常棒的安裝Python及爬蟲入門博文!

在Python安裝嚮導中選擇默認設置,點擊“Next”,選擇安裝路徑,這裡設置為默認的安裝路徑“C:\Python27”,點擊“Next”按鈕。


一篇非常棒的安裝Python及爬蟲入門博文!

安裝成功後,如下圖所示:


一篇非常棒的安裝Python及爬蟲入門博文!

第六步:假設安裝一切正常,點擊“開始”,選中“程序”,找到安裝成功的Python軟件,如圖所示:


一篇非常棒的安裝Python及爬蟲入門博文!

選中上圖中第三個圖標,即點擊“Python (command line)命令行模式”,運行程序輸入如下代碼:

print 'hello world'

則python命令行模式的解釋器會打印輸出“hello world”字符串,如下圖所示。


一篇非常棒的安裝Python及爬蟲入門博文!

選中圖中的第一個圖片,點擊“IDLE (Python GUI)”,即運行Python的集成開發環境(Python Integrated Development Environment,IDLE),運行結果如下圖。

注意2:建議大家使用IDLE寫腳本,完整的代碼而不是通過命令行模式。


一篇非常棒的安裝Python及爬蟲入門博文!

2、Python基礎知識

這裡簡單入門介紹,主要介紹下條件語句、循環語句、函數等基礎知識。

a、函數及運行

這裡舉個簡單的例子。打開IDLE工具->點擊欄"File"->New File新建文件->命名為test.py文件,在test文件裡添加代碼如下:

一篇非常棒的安裝Python及爬蟲入門博文!

保存文件。並在test.py文件裡點擊Run->Run Module,輸出結果如下圖所示。


一篇非常棒的安裝Python及爬蟲入門博文!

b、條件語句

包括單分支、雙分支和多分支語句,if-elif-else。

(1).單分支語句

它的基本格式是:

if condition:

statement

statement

需要注意的是Ptthon中if條件語句條件無需圓括號(),條件後面需要添加冒號,它沒有花括號{}而是使用TAB實現區分。其中condition條件判斷通常有布爾表達式(True|False 0-假|1-真 非0即真)、關係表達式(>= <= == !=)和邏輯運算表達式(and or not)。

(2).雙分支語句

它的基本格式是:

if condition:

statement

statement

else:

statement

statement

(3).多分支語句

if多分支由if-elif-else組成,其中elif相當於else if,同時它可以使用多個if的嵌套。具體代碼如下所示:


一篇非常棒的安裝Python及爬蟲入門博文!

c、while循環語句

while循環語句的基本格式如下:

while condition:

statement

statement

else:

statement

statement

其中判斷條件語句condition可以為布爾表達式、關係表達式和邏輯表達式,else可以省略(此處列出為與C語言等區別)。舉個例子:


一篇非常棒的安裝Python及爬蟲入門博文!

d、for循環

該循環語句的基礎格式為:

for target in sequences:

statements

target表示變量名,sequences表示序列,常見類型有list(列表)、tuple(元組)、strings(字符串)和files(文件)。

Python的for沒有體現出循環的次數,不像C語言的for(i=0;i<10;i++)中i循環計數,Python的for指每次從序列sequences裡面的數據項取值放到target裡,取完即結束,取多少次循環多少次。其中in為成員資格運算符,檢查一個值是否在序列中。同樣可以使用break和continue跳出循環。

下面是文件循環遍歷的過程:


一篇非常棒的安裝Python及爬蟲入門博文!

e、課堂講解代碼

僅供大家參考:

一篇非常棒的安裝Python及爬蟲入門博文!


輸出結果如下圖所示:


一篇非常棒的安裝Python及爬蟲入門博文!

三. 安裝PIP及第三方包

接下來需要詳解介紹爬蟲相關的知識了,這裡主要涉及到下面幾個知識:


一篇非常棒的安裝Python及爬蟲入門博文!

爬蟲主要使用Python(字符串|urllib)+Selenium+PhantomJS+BeautifulSoup。


一篇非常棒的安裝Python及爬蟲入門博文!

在介紹爬蟲及Urllib下載網頁或圖片之前,先教大家如何使用pip安裝第三方的庫。

PIP

在介紹介紹它們之前,需要安裝PIP軟件。“作為Python愛好者,如果不知道easy_install或者pip中的任何一個的話,那麼......”。

easy_insall的作用和perl中的cpan,ruby中的gem類似,都提供了在線一鍵安裝模塊的傻瓜方便方式,而pip是easy_install的改進版,提供更好的提示信息,刪除package等功能。老版本的python中只有easy_install,沒有pip。常見的具體用法如下:

一篇非常棒的安裝Python及爬蟲入門博文!

第一步:下載PIP軟件

可以在官網http://pypi.python.org/pypi/pip#downloads下載,同時cd切換到PIP目錄,在通過python setup.py install安裝。而我採用的是下載pip-Win_1.7.exe進行安裝

第二步:安裝PIP軟件


一篇非常棒的安裝Python及爬蟲入門博文!




一篇非常棒的安裝Python及爬蟲入門博文!



當提示"pip and virtualenv installed"表示安裝成功,那怎麼測試PIP安裝成功呢?

第三步:配置環境變量

此時在cmd中輸入pip指令會提示錯誤“不是內部或外部命令”。


一篇非常棒的安裝Python及爬蟲入門博文!


注意:兩種解決方法,一種是通過cd ..去到Srcipts環境進行安裝,pip install...


一篇非常棒的安裝Python及爬蟲入門博文!


方法二:另一種配置Path路徑。

需要添加path環境變量。PIP安裝完成後,會在Python安裝目錄下添加python\Scripts目錄,即在python安裝目錄的Scripts目錄下,將此目錄加入環境變量中即可!過程如下:


一篇非常棒的安裝Python及爬蟲入門博文!




一篇非常棒的安裝Python及爬蟲入門博文!


第四步:使用PIP命令

下面在CMD中使用PIP命令,“pip list outdate”列舉Python安裝庫的版本信息。


一篇非常棒的安裝Python及爬蟲入門博文!



注意:安裝成功後,會在Python環境中增加Scripts文件夾,包括easy_install和pip。


一篇非常棒的安裝Python及爬蟲入門博文!



PIP安裝過程中可能出現各種問題,一種解決方法是去到python路徑,通過python set_up.py install安裝;另一種是配置Path環境比例。

課堂重點知識:

第一節課主要想讓大家體會下Python網絡爬蟲的過程及示例。需要安裝的第三方庫主要包括三個:

pip install httplib2

pip install urllib

pip install selenium


一篇非常棒的安裝Python及爬蟲入門博文!


在安裝過程中,如果pip install urllib報錯,是因為httplib2包含了,可直接用。


一篇非常棒的安裝Python及爬蟲入門博文!



注意:如果pip安裝報錯ascii編碼問題,需要把計算機名稱從中文修改為英文名。

四. Urllib下載網頁及圖片

在使用pip install urllib或pip install urllib2後,下面這段代碼是下載網頁。


一篇非常棒的安裝Python及爬蟲入門博文!


首先我們調用的是urllib2庫裡面的urlopen方法,傳入一個URL,這個網址是百度首頁,協議是HTTP協議,當然你也可以把HTTP換做FTP、FILE、HTTPS 等等,只是代表了一種訪問控制協議,urlopen一般接受三個參數,它的參數如下:


一篇非常棒的安裝Python及爬蟲入門博文!


第一個參數url即為URL,第二個參數data是訪問URL時要傳送的數據,第三個timeout是設置超時時間。

第二三個參數是可以不傳送的,data默認為空None,timeout默認為 socket._GLOBAL_DEFAULT_TIMEOUT。

第一個參數URL是必須要傳送的,在這個例子裡面我們傳送了百度的URL,執行urlopen方法之後,返回一個response對象,返回信息便保存在這裡面。


一篇非常棒的安裝Python及爬蟲入門博文!


response對象有一個read方法,可以返回獲取到的網頁內容。

獲取的網頁本地保存為"baidu.html",通過瀏覽器打開如下圖所示:


一篇非常棒的安裝Python及爬蟲入門博文!



然後是需要下載圖片,這裡需要學會找到圖片的URL,如下圖百度的LOGO,可以通過瀏覽器右鍵"審查元素"或"檢查"來進行定位。


一篇非常棒的安裝Python及爬蟲入門博文!



定位URL後,再通過函數urlretrieve()進行下載。


一篇非常棒的安裝Python及爬蟲入門博文!


重點知識:

urllib.urlopen(url[, data[, proxies]]) :創建一個表示遠程url的類文件對象,然後像本地文件一樣操作這個類文件對象來獲取遠程數據。

urlretrieve方法直接將遠程數據下載到本地。

如果需要顯示進度條,則使用下面這段代碼:


一篇非常棒的安裝Python及爬蟲入門博文!



五. HTML網頁基礎知識及審查元素

HTML DOM是HTML Document Object Model(文檔對象模型)的縮寫,HTML DOM則是專門適用於HTML/XHTML的文檔對象模型。熟悉軟件開發的人員可以將HTML DOM理解為網頁的API。它將網頁中的各個元素都看作一個個對象,從而使網頁中的元素也可以被計算機語言獲取或者編輯。


一篇非常棒的安裝Python及爬蟲入門博文!



DOM是以層次結構組織的節點或信息片斷的集合。這個層次結構允許開發人員在樹中導航尋找特定信息。分析該結構通常需要加載整個文檔和構造層次結構,然後才能做任何工作。由於它是基於信息層次的,因而 DOM 被認為是基於樹或基於對象的。


一篇非常棒的安裝Python及爬蟲入門博文!



HTML DOM 定義了訪問和操作HTML文檔的標準方法。 HTML DOM 把 HTML 文檔呈現為帶有元素、屬性和文本的樹結構(節點樹)。它們都是一個節點(Node),就像公司的組織結構圖一樣。 我們現在從另一個角度來審視源代碼,first.html的源碼如下:


一篇非常棒的安裝Python及爬蟲入門博文!


這個例子的第一個元素就是元素,在這個元素的起始標籤和終止標籤之間,又有幾個標籤分別起始和閉合,包括

。和標籤是直接被元素包含的,而標籤則包含在標籤內。要描述一個HTML網頁的這種多層結構,用樹來進行類比是最好的方式。樹形結構如下圖所示:<p class="ql-align-center"><br/></p><div class="pgc-img"><img class="lazy" data-original="//p2.ttnews.xyz/5ba3291dbd4c943435bea7e1.jpg" img_width="467" img_height="324" alt="一篇非常棒的安裝Python及爬蟲入門博文!" inline="0"/> <div class="lazy-load-ad"></div><p class="pgc-img-caption"/></div><p class="ql-align-center"><br/></p><p class="ql-align-justify"><br/></p><p class="ql-align-justify"><strong>重點:</strong></p><p class="ql-align-justify">在網絡爬蟲中,通常需要結合瀏覽器來定位元素,瀏覽器右鍵通常包括兩個重要的功能:查看源代碼和審查或檢查元素。</p><p class="ql-align-center"><br/></p><div class="pgc-img"><img class="lazy" data-original="//p2.ttnews.xyz/5ba3291dbd4c943435bea7e4.jpg" img_width="852" img_height="265" alt="一篇非常棒的安裝Python及爬蟲入門博文!" inline="0"/> <div class="lazy-load-ad"></div><p class="pgc-img-caption"/></div><p class="ql-align-center"><br/></p><p class="ql-align-justify"><br/></p><p class="ql-align-justify">通過審查元素,可以定位到需要爬取圖片或網頁的HTML源文件,通常是table或div的佈局,這些HTML標籤通常是成對出現的,如、</p><div/>等;同時會包括一些屬性id、name、class來指定該標籤。如:<p class="ql-align-justify"/><div id="content" name="n1" class="cc">....</div><p class="ql-align-center"><br/></p><div class="pgc-img"><img class="lazy" data-original="//p2.ttnews.xyz/5ba3291dbd4c943435bea7e6.jpg" img_width="826" img_height="468" alt="一篇非常棒的安裝Python及爬蟲入門博文!" inline="0"/> <div class="lazy-load-ad"></div><p class="pgc-img-caption"/></div><p class="ql-align-center"><br/></p><p class="ql-align-justify"><br/></p><p class="ql-align-justify"><strong>六. 安裝Selenium及網頁簡單爬取</strong></p><p class="ql-align-justify">Selenium用於Web應用程序測試的工具,模擬瀏覽器用戶操作,通過Locating Elements 定位元素。安裝過程如下圖所示,通過pip install selenium安裝。</p><p class="ql-align-justify">注意:需要cd去到Scripts目錄進行安裝。</p><p class="ql-align-center"><br/></p><div class="pgc-img"><img class="lazy" data-original="//p2.ttnews.xyz/5ba3291dbd4c943435bea7e8.jpg" img_width="1080" img_height="306" alt="一篇非常棒的安裝Python及爬蟲入門博文!" inline="0"/> <div class="lazy-load-ad"></div><p class="pgc-img-caption"/></div><p class="ql-align-center"><br/></p><p class="ql-align-justify"><br/></p><p class="ql-align-center"><br/></p><div class="pgc-img"><img class="lazy" data-original="//p2.ttnews.xyz/5ba3291dbd4c943435bea7eb.jpg" img_width="668" img_height="434" alt="一篇非常棒的安裝Python及爬蟲入門博文!" inline="0"/><p class="pgc-img-caption"/></div><p class="ql-align-center"><br/></p><p class="ql-align-justify"><br/></p><p class="ql-align-justify">selenium結合瀏覽器定位的基本函數包括: <div class="lazy-load-ad"></div></p><p class="ql-align-center"><br/></p><div class="pgc-img"><img class="lazy" data-original="//p2.ttnews.xyz/5ba3291dbd4c943435bea7ee.jpg" img_width="853" img_height="477" alt="一篇非常棒的安裝Python及爬蟲入門博文!" inline="0"/><p class="pgc-img-caption"/></div><p class="ql-align-center"><br/></p><p class="ql-align-justify"><br/></p><p class="ql-align-justify">第一個基於Selenium爬蟲的代碼,通過調用Firefox瀏覽器:</p><p class="ql-align-justify"/><p class="ql-align-center"><br/></p><div class="pgc-img"><img class="lazy" data-original="//p2.ttnews.xyz/5ba3291dbd4c943435bea7f0.jpg" img_width="835" img_height="808" alt="一篇非常棒的安裝Python及爬蟲入門博文!" inline="0"/> <div class="lazy-load-ad"></div><p class="pgc-img-caption"/></div><p class="ql-align-center"><br/></p><p class="ql-align-justify"> </p><p class="ql-align-justify">輸出如下圖所示:</p><p class="ql-align-center"><br/></p><div class="pgc-img"><img class="lazy" data-original="//p2.ttnews.xyz/5ba3291dbd4c943435bea7f3.jpg" img_width="854" img_height="467" alt="一篇非常棒的安裝Python及爬蟲入門博文!" inline="0"/><p class="pgc-img-caption"/></div>


分享到:


相關文章: