作者: 李菲 來源:人工智慧學習圈
在如今的大數據時代,相信大家都對Python一詞有所耳聞。而Python爬蟲,簡單來說,即通過Python程序獲取對我們有用的數據。常用於商業分析,不過偶爾也可以輔助我們解決在日常生活中遇到的一些問題。
首先,在爬蟲中最常見的代碼便是:
即引入requests庫,是一切爬蟲程序的基礎。在Python中,有許多庫可以供我們使用。這也是Python相對於其它程式語言的一大優勢。
*這裡要注意,如果之前沒有在電腦上安裝過requests庫,需要先進行安裝。Mac用戶在終端中輸入pip3 install requests,按下回車即可。Windows用戶需要打開命令提示符程序,輸入pip install requests。
在引入requests資料庫後,就可以使用其中的requests.get()方法了。其具體的用法為:
其中,variable代表變量的名稱,常用的命名為res。(不過也可以自定義變量名,並不會影響程序的運行。)括號中的參數是所需要的數據的網址。
在這裡需要注意,不是所有伺服器都會歡迎爬蟲程序。建議大家在運行爬蟲程序前先去查一下相應網站的Robots協議,了解一下哪些頁面是可以抓取的。而查看Robots協議的方式也很簡單,只需在網站域名後加上/robots.txt就可以了。網址前如有顯示『Allow』即為允許爬取,而帶有『Disallow』後的網址就不建議大家去抓取了。比如,下圖就是知乎的部分Robots協議截圖。
那麼,在這裡舉個例子。比如,我想要爬取某網站的信息,假設它的網址為https://www.xxxxx/,那麼獲取數據部分的完整的代碼便是:
除此之外,我們還可以通過print(type(res))來查看數據的類型。如運行無誤,終端中會顯示<class 'requests.models.Response』>。代表變量res屬於requests.models.Response類。而此類中的常用屬性及作用分別為:
1)變量.status_code
用於查看請求是否成功。如終端返回200,則代表請求成功,伺服器會返回相應數據。
2)變量.content
用於轉換response對象到二進位數據。常用於圖片、音頻與視頻數據。
3)變量.text
用於轉換response對象到字符串數據。常用於文本數據。
4)變量.encoding
用於定義response對象的編碼。注意:只有亂碼情況下才會使用到此屬性。
只有短短幾行的代碼,是不是看起來很簡單呢?
不過,千萬不要掉以輕心啦,因為這只是爬蟲中的冰山一角。在了解到如何獲取數據後,還需要學習如何解析、提取、以及儲存數據。這樣才算掌握了最基本的爬蟲技能。
原文連結:https://zhuanlan.zhihu.com/p/149326920