python 爬蟲 urllib模塊介紹

 

 

一.urllib庫

  概念:urllib是Python自帶的一個用於爬蟲的庫,其主要做用就是能夠經過代碼模擬瀏覽器發送請求。其常被用到的子模塊在Python3中的爲urllib.request和urllib.parse,在Python2中是urllib和urllib2。html

     使用流程:python

  • 指定url
  • 針對指定的url發起請求 (基於urllib的request子模塊發起請求)
  • 獲取服務器響應回來的頁面數據
  • 持久化存儲 (能夠把頁面數據存到數據庫,或者存到本地磁盤)

 

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()

生成圖片文件函數

相關文章
相關標籤/搜索