概念:urllib是Python自帶的一個用於爬蟲的庫,其主要做用就是能夠經過代碼模擬瀏覽器發送請求。其常被用到的子模塊在Python3中的爲urllib.request和urllib.parse,在Python2中是urllib和urllib2。html
使用流程:python
1.第一個簡單的爬蟲程序:爬取搜狗首頁的頁面數據數據庫
import urllib.request # 1.指定url url = 'https://www.sogou.com/' ''' 2.發起請求:使用urlopen函數對指定的url發起請求, 該函數返回一個響應對象,urlopen表明打開url ''' response = urllib.request.urlopen(url=url) # 3.獲取響應對象中的頁面數據:read函數能夠獲取響應對象中存儲的頁面數據(byte類型的數據值) page_text = response.read() # 4.持久化存儲:將爬取的頁面數據寫入文件進行保存 with open("sougou.html","wb") as f: f.write(page_text) print("寫入數據成功") f.close()
生成一個html文件,把爬取數據寫入到文件裏瀏覽器
urlib模塊urlopn方法說明:服務器
urlopen函數原型: urllib.request.urlopen(url, data=None, timeout=<object object at 0x10af327d0>, *, cafile=None, capath=None, cadefault=False, context=None) 在上述案例中咱們只使用了該函數中的第一個參數url。在平常開發中,咱們能用的只有url和data這兩個參數。 url參數:指定向哪一個url發起請求 data參數:能夠將post請求中攜帶的參數封裝成字典的形式傳遞給該參數(暫時不須要理解,後期會講) urlopen函數返回的響應對象,相關函數調用介紹: response.headers():獲取響應頭信息 response.getcode():獲取響應狀態碼 response.geturl():獲取請求的url response.read():獲取響應中的數據值(字節類型)
2.二進制數據的爬取:爬取網絡上的某張圖片數據,且存儲到文件網絡
import urllib.request # 1.指定url url = 'https://pic.qiushibaike.com/system/pictures/12112/121121212/medium/ZOAND29U4NKNEWEF.jpg' ''' 2.發起請求:使用urlopen函數對指定的url發起請求, 該函數返回一個響應對象,urlopen表明打開url ''' response = urllib.request.urlopen(url=url) # 3.獲取響應對象中的圖片二進制類型的數據 img_data = response.read() # 4.持久化存儲:將爬取的圖片寫入本地進行保存 with open('./tupian.png','wb') as fp: fp.write(img_data) fp.close()
生成圖片文件函數