今天我們來介紹近年大火的爬蟲工具,需要說明的是,我們今天將主要介紹基於python的專業工具——requests第三方軟件包的基本使用,並且有兩個實戰例子,其他如八爪魚採集器、後裔採集器等爬蟲軟件的使用大家可通過網頁教程自行探索!
一、什麼是Requests軟件包
Requests軟件包是目前公認的爬取網頁最好的第三方庫,主要特點在於超簡潔!甚至一行代碼就能從網頁上獲得相關資源,輕輕鬆鬆便可掌握掌握定向網絡數據爬取的方法。
二、Requests安裝
安裝方法:直接以管理者身份運行命令提示符,輸入pip install requests即可,回車即可。如果你的電腦上沒有pip,(嘖嘖),請上官網http://www.python-requests.org獲得幫助。
(emm…開頭表揚:我不得不說,這個庫的官網實在是太可愛啦!)
三、基本方法介紹
首先介紹,Requests可以實現兩個功能:
一是自動爬取HTML頁面
二是自動網絡請求提交
requests庫主要有7個常用方法:
其中,requests.get() 是獲取HTML網頁的主要方法,也是我們最常用的方法。以下構造了一個向服務器請求資源的Request對象,其中url為擬獲取頁面的url鏈接。
<code>r=requests.get(url)/<code>
四、實例演示——爬取百度主頁信息
訪問百度主頁
<code>import requestsr = requests.get(“ http://www.baidu.com”)/<code>
檢查狀態碼,若狀態碼為200則訪問成功,否則即為失敗
<code>r.status_code/<code>
解碼,更改為“utf-8”編碼(針對Unicode的一種可變長度字符編碼)
<code>r.encoding= 'utf-8'/<code>
輸出網頁內容
<code>r.text/<code>
此時,便成功抓取了百度首頁的內容!
五、實戰1 :爬取京東商品信息
在這一例中,我們選擇了華為Mate30這一產品,用try/except格式(主要是用於處理程序正常執行過程中出現的一些異常情況),來爬取商品信息。
<code>import request surl=" https://item.jd.com/100005185603.html" try: r=requests.get(url) r.raise_for_status() r.encoding=r.apparent_encoding print(r.text[:1000]) except: print ("爬取失敗")/<code>
以下就是我們的結果啦~
運行結果:
六、實戰2:網絡圖片的爬取和儲存
在國家地理中文網中我們選擇瞭如下圖片(這張罕見的照片捕捉到了一隻喜馬拉雅旱獺被一隻藏狐嚇壞的一幕,照片的拍攝者中國攝影師鮑永清獲得了年度野生生物攝影師大賽的最高榮譽。
攝影:鮑永清, WILDLIFE PHOTOGRAPHER OF THE YEAR)。
我們複製了其圖片鏈接,接下來我們將用python將其爬取下來,並保存在C://pics//路徑中。
<code>import requestsimport os url=" http://image.ngchina.com.cn/2019/1016/20191016034112233.jpg " root="C://pics//"path=root+url.split('/')[-1] try: if not os.path.exists(root): os.mkdir(root) if not os.path.exists(path): r=requests.get(url)with open(path,'wb') as f: f.write(r.content)f.close()print("文件保存成功") else: print("文件已存在") except: print("爬取失敗")/<code>