1. 程式人生 > >python之爬蟲的入門01------爬蟲原理、爬蟲偽裝

python之爬蟲的入門01------爬蟲原理、爬蟲偽裝

一、什麼是爬蟲
爬蟲:一段自動抓取網際網路資訊的程式,從網際網路上抓取對於我們有價值的資訊。

如果我們把網際網路比作一張大的蜘蛛網,資料便是存放於蜘蛛網的各個節點,而爬蟲就是一隻小蜘蛛,

沿著網路抓取自己的獵物(資料)爬蟲指的是:向網站發起請求,獲取資源後分析並提取有用資料的程式;

從技術層面來說就是 通過程式模擬瀏覽器請求站點的行為,把站點返回的HTML程式碼/JSON資料/二進位制資料(圖片、視訊) 爬到本地,進而提取自己需要的資料,存放起來使用;

二、爬蟲基本流程
傳送請求—獲取響應內容—解析資料—儲存資料
【網際網路載入一個頁面:
首先在位址列輸入url地址(http://www.baidu.com

),然後一個請求攜帶資訊傳送到url地址所在伺服器,伺服器根據資訊作出反應,返回響應資料,響應資料返回瀏覽器進行渲染、就是css載入和js載入。

三、爬蟲範例

範例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。