程式碼:
import requests
url = 'https://cdn.pixabay.com/photo/2018/01/04/07/59/salt-3060093_960_720.jpg'
data = requests.get(url).content
f = open('1.jpg', 'wb')
f.write(data)
f.close()
print('OK')
解釋程式碼
變數
程式碼中的 url、data、f 都是變數,也可以給他們取別的名字:a、b、c,或者x、y、z 都可以
url = 'https://cdn.pixabay.com/photo/2018/01/04/07/59/salt-3060093_960_720.jpg'
這行程式碼表示把圖片的網址賦值給變數 url。
在之後的程式碼中 url 就代指這個網址。
Python 用等號=
來給變數賦值,等號左邊是變數名,等號右邊是儲存在變數中的值。
Python 的變數賦值不需要宣告變數型別。
變數命名規則:
- 只能包含字母、數字和下劃線,並且不能以數字開頭。
- 區分大小寫字母,如果寫錯了大小寫,程式會報錯。
- 不能使用保留字
通常以“小寫字母,單詞之間用 _
分割”的方式來給普通變數名。
this_is_a_var
字串
'https://cdn.pixabay.com/photo/2018/01/04/07/59/salt-3060093_960_720.jpg'
就是字串。
在 Python 中,可以用成對的單引號( ' )、雙引號( " )、三引號( ''' 或 """ ) 來表示字串,其中三引號可以跨行。
字串是程式語言中表示文字的資料型別。
requests 庫
使用之前要先匯入import requests
。(別的Python程式設計工具需要先安裝 requests,Anaconda不用)
data = requests.get(url).content
可以分成兩段:
response = requests.get(url)
data = response.content
response 和 data 當然都是變數
response = requests.get()
表示使用requests庫的get函式,獲取網頁,並賦值給變數 response
data = response.content
表示把變數response的資料以二進位制的格式返回,賦值給變數data
requests.get(url).content
以後會經常用到。
檔案的開啟
f = open('1.jpg', 'wb')
這行程式碼表示在當前目錄開啟一個名為1.jpg 的檔案,賦值給變數 f。如果該檔案已存在則將其覆蓋,如果該檔案不存在,建立新檔案。
函式 open() 的語法為: open(路徑+檔名,讀寫模式)
如果沒有“路徑”則是在當前目錄。當前目錄的意思是包含這段程式碼的 .py 檔案所在的資料夾。
路徑+檔名
與 讀寫模式
都是字串型別。
讀寫模式有很多種,寫爬蟲一般用 wb 模式
:以二進位制格式開啟一個檔案只用於寫入,如果該檔案已存在則將其覆蓋,如果該檔案不存在,建立新檔案。
檔案的寫入
f.write(data)
表示將data寫入 f 檔案。
write() 方法,將字串寫入一個開啟的檔案。
檔案的關閉
f.close()
表示關閉檔案 f。檔案開啟後,無論進行讀、寫或其他什麼操作,最後都要關閉。
輸出到螢幕
print('OK')
在螢幕上輸出字串 OK。
print 用於列印輸出。在 Python2.x 版本可以 print 'ok'
也可以 print('OK')
,而在 Python3.x 必須 print('OK')
。
這句程式碼的作用是告訴我們全部程式碼已經執行完畢,圖片下載好了。沒有這句也不影響下載圖片。
Python 基礎語法:
每一行是一個語句,語句無需以 ;結尾。不需要大括號 {} 來控制類、函式以及其他邏輯判斷。
Python 用縮排表示邏輯層次。當語句以冒號 : 結尾時,下一行程式碼需要縮排。
沒有規定縮排是幾個空格還是Tab,但是所有程式碼的縮排必須相同。約定俗成是4個空格的縮排。
縮排很方便,但也有壞處,Python 程式碼“複製-貼上”後需要重新檢查縮排是否正確。
執行程式碼
開啟Spyder,點選左上角的“新建”。
把最上面的程式碼複製到左邊的編輯區,點選“執行”
在彈出的對話方塊裡輸入檔名,以 .py 為字尾,選擇存放位置,點選儲存。
等待幾秒鐘,Spyder的右側輸出OK,說明圖片下載成功。
圖片下載到和上面的 .py 檔案相同的目錄。檔名為 1.jpg
好啦,第一個 Python 爬蟲成功了。
可以把 url 的賦值改為其他圖片的地址來下載其他圖片。
如何獲取圖片地址:網頁上右鍵點選圖片,選擇“複製圖片地址”
你可能覺得用爬蟲下載圖片還不如手動下載方便。
因為這才剛剛開始,後面我們會給爬蟲新增自動化,還可以進行篩選。
Spyder 簡介
左邊是程式碼編輯區。
右邊下半部分是 Ipython ,左邊程式碼的 print 都會顯示在 Ipython。
Ipython 還可以進行一行行的互動。
右邊的上半部分不常用,可以連續點選 X 將其關閉
最後變成這樣:
此文章是我原創,20180114 釋出於我在其他平臺的部落格,現同步在此
我的公號:v1coder
我的部落格:v1coder.com
我的GitHub:https://github.com/v1coder