python爬蟲初級篇-三步走之(一): 下載網頁

爬蟲的第一步即下載, 通常, 爬蟲以下載網頁開始, 本文簡單介紹如何利用python下載網頁

我們知道瀏覽器查看網頁時首先會發送一個請求request給服務器, 服務器根據request請求做一些處理生成一個響應response返回給瀏覽器, 而這個response中就包含着我們需要的網頁(或者數據, 一般靜態網站或者服務器端渲染是直接返回網頁), 那麼我們要下載網頁也就只需要模仿瀏覽器發送這個request給服務器, 然後等着服務器發回response就行.

使用python向服務器發送請求方法很多, 常見的有用urllib、urllib2(針對python2), urllib3(針對python3), requests,等.

這裏爲了防止初學者混亂, 只介紹使用urllib庫發送請求, 至於其他幾個庫在補充篇裏面介紹

這裏需要說明, 在python2和python3 裏, urllib庫用法是不一樣的, 這裏我主要用的是python3, python2 的同學請自行搜索python2中urllib庫的使用

我們以訪問百度首頁爲例

首先當然得引入庫了

from urllib import request

然後我們使用 urlopen() 來發送GET請求, 函數參數是想要訪問的網頁鏈接

response = request.urlopen("http://www.baidu.com")

得到的響應的一切信息都保存在response對象中, 我們可以通過response.read()來查看我們得到的網頁, 在這裏我們把網頁寫入到了py文件對應的同目錄下的baidu.html文件中

with open("./baidu.html", "wb") as fp:
    fp.write(response.read())

此時我們可以在py文件同目錄下看到baidu.html文件,用瀏覽器打開會看到百度首頁,當然一些圖片看不到.不過我們還是成功的下載了百度首頁

(如果是用python自帶的idle, 最好不要用print(response.read()) 來打印頁面,頁面大的話容易卡死)


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章