Python用3條命令創建你的爬蟲

編程語言 Python 網絡爬蟲 GitHub IT技術Java交流 2017-05-24

Python3爬蟲工具

Mini-Spider是一個實用的爬蟲工具,它的意義在於快速獲得你所要的資源,而不用去關注諸如爬蟲構造、數據存儲、網絡環境、語言實現等一系列的事情。現在你只需要簡單的幾個命令,就可以創建一個爬蟲,並完成你的任務!

GitHub地址:MIni-Spider

https://github.com/ZYunH/Mini-Spider

對於大部分的剛剛開始使用Python的開發人員,創建一個爬蟲並不是一件容易的事情。通常來說,一個完整的小型爬蟲也至少需要以下的特性:

  • 正確的提取程序(正則表達式以及一些解析html網頁的python庫)

  • 合理的錯誤處理程序(爬蟲經常遇見各種錯誤,例如SSL驗證錯誤、超時、頭文件錯誤等等)

  • 數據的持久性(你需要保存相應的文件、提取的鏈接,對於一些資源型文件你可能還需要一個下載器)

使用Mini-Spider你就可以忽略這些煩人的事情。

相比於普通的爬蟲,Mini-Spider不需要你去制定提取規則、錯誤處理、數據存儲。

你需要做的僅僅是告訴Mini-Spider你需要提取什麼和這些資源的位置!

.安裝

安裝Mini-Spider只需要在終端中輸入一條命令。(對於windows是cmd.exe,Linux&mac是terminal)

注意:Mini-Spider僅僅支持python3.x,如果沒有下載python3的童鞋請去官網下載

https://www.python.org/downloads/

Python用3條命令創建你的爬蟲

Python用3條命令創建你的爬蟲

使用

現在Mini-Spider還不夠完善,但對於一些簡單的需求往往具有非常高的效率。

例如在一個論壇中提取圖片這項工作亦或是在所有的單位通知中尋找一些文件這些功能,Mini-Spider僅需要幾條命令即可。

這裡,以提取蜂鳥網的圖片為例來介紹如何使用Mini-Spider。

示例中的爬蟲實際上可以在蜂鳥網的任意帖子使用,因為需要提取的格式都是一樣的,這意味著使用Mini-Spider創建出來的爬蟲往往可以重複使用,儘管創建他們僅需要兩條命令。

示例網址:http://bbs.fengniao.com/forum/9373824.html

Python用3條命令創建你的爬蟲

這是示例的帖子,現在通過幾個簡單的命令來將他們全部提取。

1)在終端中輸入

-a 命令的作用是分析該網站,並查找html 以及 jpg 資源

Python用3條命令創建你的爬蟲

得到輸入

Python用3條命令創建你的爬蟲

2)可以通過觀察以上輸出發現

  • [0]組的所有元素是我們需要提取的版主圖片

  • [11]組的第(2)個元素是下一個頁面的地址

下面來創建提取他們的提取器

Python用3條命令創建你的爬蟲

-c 0 代表創建提取[0]組所有元素的提取器

-to r 標識該提取器得到的數據是資源數據(也就是我們需要提取的圖片)

Python用3條命令創建你的爬蟲

-c 11 2 代表創建提取[11]組的第二個元素的提取器

-to u 標識該提取器得到的數據是下一個頁面的地址(也就是爬取得下一個目標)

3)開始提取

現在爬蟲已經創建完畢!

我們僅需一個命令開始爬取

Python用3條命令創建你的爬蟲

-start http://bbs.fengniao.com/forum/9373824.html 命令代表從該URL開始爬取

可以看到爬蟲遍歷了該帖子所有頁面,並提取到了21張圖片

4)下載

下面將這些圖片下載到我們的計算機上

Python用3條命令創建你的爬蟲

download hereresult 代表將數據庫中的資源地址內容全部下載到result文件上(here代表運行路徑,單層目錄不需要加斜槓或反斜槓,多層目錄例如在Unix上可以使用hereresult/first)

如此,我們在當前路徑的文件result中看到所有圖片

Python用3條命令創建你的爬蟲

.循環利用你的爬蟲

創建出來的爬蟲其實僅僅是兩個提取器文件,即

Python用3條命令創建你的爬蟲

屏幕快照 2017-05-22 20.34.02.png

只要擁有這兩個提取器文件,你就可以在任何時候任何地方使用它。

例如,提取蜂鳥網的任意帖子,你可以這樣做

$ mini-spider -start [你需要的帖子的鏈接]

然後下載他們

$ mini-spider -download hereresult

(hereresult可以省略,如果省略這意味著你將他們下載到當前目錄下,這樣可能會導致目錄文件過多而混亂)

下面嘗試提取另一個帖子

http://bbs.fengniao.com/forum/9602611.html

$ mini-spider -start http://bbs.fengniao.com/forum/9602611.htmlurl: 1/33||resource: 5/26url: 1/34||resource: 5/26url: 0/34||resource: 5/26

然後下載

$ mini-spider -download

完成!

詳細查看https://github.com/ZYunH/Mini-Spider

學習過程中遇到什麼問題或者想獲取學習資源的話,歡迎加入學習交流群

626062078,我們一起學Python!

相關推薦

推薦中...