標籤:div internet https python image 選擇 定位 就是 方式
在開始學習爬蟲之前,我花了大概兩周時間來熟悉python3的基本文法。
相比較於我的啟蒙語言VB,python的優美之處讓我深有體會。人生苦短,我用python!
一、關於爬蟲
鑒於我的windos環境使用命令列感覺非常不便,也懶得折騰虛擬機器,於是我選擇了一個折中的辦法——Cmder。它的是:cmder.net
Cmder是一個增強型命令列工具,不僅可以使用windows下的所有命令,更爽的是可以使用linux的命令,shell命令。下載下來後,解壓即可使用。稍加設定(具體的設定可以百度),你就會發現它比windos的cmd要好用的多。
爬蟲分為通用爬蟲和聚焦爬蟲,我們所研究的就是聚焦爬蟲——抓取網頁時篩選,盡量只抓與需求相關的網頁資訊。而網路爬蟲的抓取過程我們可以理解為類比瀏覽器操作的過程,這個過程基於Http(超文字傳輸通訊協定 (HTTP))和Https(安全版的Http)的。當我們向瀏覽器中輸入https://www.baidu.com/時,它就會根據這個地址來擷取網頁資訊。我們所輸入的網址就是URL——統一資源定位器,它是用於完整地描述Internet上網頁和其它資源的地址的一種標識方式。
二、Python的urllib包
在Python3中,我們可以使用urlib這個組件抓取網頁,urllib是一個URL處理包,這個包中集合了一些處理URL的模組。我們可以使用help命令查看一下。
import urllibhelp(urllib)
其中:
1.urllib.request模組是用來開啟和讀取URLs的;
2.urllib.error模組包含一些有urllib.request產生的錯誤,可以使用try進行捕捉處理(可以學習一下python的異常處理機制);
3.urllib.parse模組包含了一些解析URLs的方法;
4.urllib.robotparser模組用來解析robots.txt(爬蟲協議)文字檔,它提供了一個單獨的RobotFileParser類,通過該類提供的can_fetch()方法測試爬蟲是否可以下載一個頁面。
三、下載一個頁面
瞭解了以上這些,我們可以用request來嘗試下載一個頁面。在ipython中測試一下:
1 from urllib import request2 3 response=request.urlopen(‘http://www.17jita.com/‘)4 html=response.read()5 6 print(html)
看起來有些亂碼,別著急,我們可以通過簡單的decode()命令將網頁的資訊進行解碼,並顯示出來.
1 from urllib import request2 3 response=request.urlopen(‘http://www.17jita.com/‘)4 html=response.read().decode(‘gbk‘)5 6 print(html)
這樣我們就可以利用python看到網頁的源碼了,這與在瀏覽器右鍵查看網頁原始碼所看到的是一致的。
值得注意的是,在使用decode解碼時,我們要瞭解到一些一些常用的編碼方式,如:gbk,gb2312,utf-8,Unicode等等。python2的編碼就常常為人所詬病,但是在在python3中,這個問題得到瞭解決。具體資料可以自行百度。
python爬蟲(1)