天天看點

《精通Python網絡爬蟲:核心技術、架構與項目實戰》——3.7 執行個體——metaseeker

本節書摘來自華章出版社《精通python網絡爬蟲:核心技術、架構與項目實戰》一書中的第3章,第3.7節,作者 韋 玮,更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。

metaseeker是一款比較實用的網站資料采集程式,使用該采集程式,可以讓大家比較快速、形象地了解爬蟲的工作過程。是以在本節中,會以metaseeker為例,跟大家一起學習如何采集當當網的商品及價格資訊,讓大家對爬蟲工作過程有一個形象地了解,為後續我們使用python開發爬蟲打下基礎。

《精通Python網絡爬蟲:核心技術、架構與項目實戰》——3.7 執行個體——metaseeker
《精通Python網絡爬蟲:核心技術、架構與項目實戰》——3.7 執行個體——metaseeker

下載下傳之後,我們隻需要打開安裝即可,安裝好之後,打開該軟體,會出現一個類似浏覽器的界面,我們打開要爬取的網址(即剛才提到的當當網的圖書商品頁),單擊“ms謀數台”,如圖3-7所示。

《精通Python網絡爬蟲:核心技術、架構與項目實戰》——3.7 執行個體——metaseeker

打開後,會出現圖3-8所示的界面。

此時,我們需要将剛才的商品頁面網址複制到左上角的網址處,并按一下Enter鍵,如圖3-9所示。在加載了一會兒之後,軟體的左下角處會出現“完成”字樣,此時代表網頁加載完成。

《精通Python網絡爬蟲:核心技術、架構與項目實戰》——3.7 執行個體——metaseeker

然後,我們需要在該界面的“工作台”中,建立命名主題,建立好命名主題後,需要單擊“查重”按鈕,看是否名稱沖突,若名稱沖突則需要換一個主題名字。如圖3-10所示,建立了一個名為dangdangbookprice的主題名。

建立主題名之後,需要進行下一步操作,即建立規則。我們在建立規則的頁面中,單擊建立,便可以輸入想建立的規則名稱,該規則名稱可以自己拟定,如圖3-11所示,我們建立了一個名為“當當圖書商品價格抓取”的規則名稱。

《精通Python網絡爬蟲:核心技術、架構與項目實戰》——3.7 執行個體——metaseeker
《精通Python網絡爬蟲:核心技術、架構與項目實戰》——3.7 執行個體——metaseeker
《精通Python網絡爬蟲:核心技術、架構與項目實戰》——3.7 執行個體——metaseeker

建立好了該規則名稱後,我們需要標明該規則名,然後右鍵,單擊添加→包容,如圖3-12所示。

随後,會出現如圖3-13所示的界面,讓我們填寫被爬取内容的詳細資訊,此時,我們需要根據自己的需求規劃好一共需要多少個包容,比如,在此我們需要爬取商品的名稱和商品的價格,是以兩個包容就夠了。我們先建立第一個包容,即商品價格,輸入對應名稱,然後勾選好右邊的“關鍵内容”。完成之後,可以單擊儲存,然後再次選中規則名,并右鍵添加第二個包容,即商品名稱。

《精通Python網絡爬蟲:核心技術、架構與項目實戰》——3.7 執行個體——metaseeker
《精通Python網絡爬蟲:核心技術、架構與項目實戰》——3.7 執行個體——metaseeker

完成之後,會出現如圖3-14所示界面。

随後,我們可以在該界面的浏覽器視窗中,選擇其中一個商品的名稱,即以一個商品名為例,建立好對應的規則。單擊後可能會出現如圖3-15所示的提示。

《精通Python網絡爬蟲:核心技術、架構與項目實戰》——3.7 執行個體——metaseeker
《精通Python網絡爬蟲:核心技術、架構與項目實戰》——3.7 執行個體——metaseeker

如果出現圖3-15中的提示,我們可以單擊該界面左上角的檔案→重新整理網頁結構,如圖3-16所示,這樣即可解決該問題。

《精通Python網絡爬蟲:核心技術、架構與項目實戰》——3.7 執行個體——metaseeker

解決該問題後,我們再次單擊其中一個商品名,單擊後,網頁标簽處自動定位到對應的元素中。如圖3-17所示,我們單擊了“幸存者”之後,在網頁标簽中自動定位到了對應的div中,将div展開,有一個“#text”的字樣,選中該字樣,可以看到,在工作台的文本内容中,出現了對應的商品名,此時代表商品名定位成功。

随後,我們選中對應的“#text”,然後右鍵,單擊内容映射→商品名稱,将該規則映射到對應的商品名稱包容中,那麼以後,便可以根據這個規則去爬取網頁上的其他商品的名稱了,如圖3-18所示。

我們還需要指定價格的規則,此時我們在浏覽器區域中,單擊該商品對應的價格,然後,在網頁标簽處會進行自動定位,如圖3-19所示,我們單擊了對應的價格“9.09”之後,網頁标簽處,自動定位到了對應的i标簽下,我們展開i标簽,同樣可以看得到一個“#text”,選中“#text”在工作台的文本内容中,會出現對應的價格資訊,此時,代表定位成功。

然後,我們同樣需要選中該标簽,然後右擊,将該标簽映射到商品價格中,如圖3-20所示。

《精通Python網絡爬蟲:核心技術、架構與項目實戰》——3.7 執行個體——metaseeker
《精通Python網絡爬蟲:核心技術、架構與項目實戰》——3.7 執行個體——metaseeker
《精通Python網絡爬蟲:核心技術、架構與項目實戰》——3.7 執行個體——metaseeker
《精通Python網絡爬蟲:核心技術、架構與項目實戰》——3.7 執行個體——metaseeker

标簽規則映射好之後,我們傳回工作台,然後單擊測試,便可以看得到目前是否爬取該界面中的所有商品資訊。如圖3-21所示,傳回工作台,并單擊測試。

單擊了測試後,在輸出資訊中,我們可以看得到,該輸出資訊包含了該界面中所有的商品名稱和對應的商品價格,也就是說,我們成功采集了,如圖3-22所示,由于界面空間有限,隻展現了部分爬取資訊。

如果我們要對該網站下其他網頁中的商品資訊都進行自動爬取,雖然也是可以的,但是需要設定對應的爬取規則。在這裡,metaseeker的使用僅作為本書的一個執行個體,并不是本書的重點内容,是以,關于metaseeker的深入使用部分我們就不過多講解了,對應的内容不難,有興趣的讀者可以檢視相關資料。

《精通Python網絡爬蟲:核心技術、架構與項目實戰》——3.7 執行個體——metaseeker
《精通Python網絡爬蟲:核心技術、架構與項目實戰》——3.7 執行個體——metaseeker

我們講該執行個體的目的是讓大家對爬蟲有一個形象的初步印象,友善後續深入學習爬蟲開發。