python之爬蟲的入門01------爬蟲原理、爬蟲偽裝
阿新 • • 發佈:2018-11-13
一、什麼是爬蟲
爬蟲:一段自動抓取網際網路資訊的程式,從網際網路上抓取對於我們有價值的資訊。
如果我們把網際網路比作一張大的蜘蛛網,資料便是存放於蜘蛛網的各個節點,而爬蟲就是一隻小蜘蛛,
沿著網路抓取自己的獵物(資料)爬蟲指的是:向網站發起請求,獲取資源後分析並提取有用資料的程式;
從技術層面來說就是 通過程式模擬瀏覽器請求站點的行為,把站點返回的HTML程式碼/JSON資料/二進位制資料(圖片、視訊) 爬到本地,進而提取自己需要的資料,存放起來使用;
二、爬蟲基本流程
傳送請求—獲取響應內容—解析資料—儲存資料
【網際網路載入一個頁面:
首先在位址列輸入url地址(http://www.baidu.com
】
三、爬蟲範例
範例1.返回一個HTML頁面資料(一般是殘缺的,缺少渲染)
import urllib.request #匯入一個爬蟲需要的包 def main(): response = urllib.request.urlopen(url='https://www.taobao.com/') #返回的是一個響應物件 response = response.read() #獲取HTML內容,read可以獲取檔案所有的內容 print(response) if __name__ == '__main__': '''簡單返回一個HTML頁面資料''' main()
範例2.爬蟲偽裝請求頭(偽裝從瀏覽器傳送的,防止被校驗出是爬蟲)
import urllib.request as urllib2 def main(): headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36', 'Connection': 'keep - alive', } # 構造REQUEST請求,增加headers,偽裝成瀏覽器請求 request_obj = urllib2.Request(url='http://www.taobao.com/', headers=headers) # 獲取請求頭的User-agent觀察下 user_agent = request_obj.get_header('User-agent') print(user_agent) # 獲取請求頭的connect觀察下 conect = request_obj.get_header('Connection') print(conect) response = urllib2.urlopen(request_obj) # 返回的是一個響應物件 response = response.read() # 獲取html的內容,read可以獲取檔案所有的內容 return response if __name__ == '__main__': a=main() print(a) #現在獲取的響應a是bytes型別
上面這個範例的headers我只寫了兩個,最好是把headers寫完整。
headers檢視方法:網頁上滑鼠點選右鍵,進入審查元素或者檢查,裡面的network裡,此時重新整理網頁,一般出現的檔案點選第一個,右邊headers裡的request headers。