Python3爬蟲程式設計學習筆記(二)爬蟲原理

2021-10-04 05:58:22 字數 1728 閱讀 8042

http是乙個簡單的請求-響應協議,它通常執行在tcp之上。它指定了客戶端可能傳送給伺服器什麼樣的訊息以及得到什麼樣的響應。請求和響應訊息的頭以ascii碼形式給出;而訊息內容則具有乙個類似mime的格式。這個簡單模型是早期web成功的有功之臣,因為它使得開發和部署是那麼的直截了當。

引用csdn博主【數挖小飛飛】的部落格文章《python網路爬蟲資料採集實戰:基礎知識》,非常感謝博主!

https可以理解為http的加密形式。http(hypertext transfer protocol,超文字傳輸協議)是乙個簡單的請求-響應協議,它通常執行在tcp之上。它指定了客戶端可能傳送給伺服器什麼樣的訊息以及得到什麼樣的響應。https (全稱:hyper text transfer protocol over securesocket layer),是以安全為目標的 http 通道,在http的基礎上通過傳輸加密和身份認證保證了傳輸過程的安全性。https 在http 的基礎下加入ssl 層,https 的安全基礎是 ssl,因此加密的詳細內容就需要 ssl,上文中的鏈結即為https鏈結。

3.請求與響應

http請求過程可分為以下幾個部分:建立tcp連線,瀏覽器向伺服器傳送請求命令,伺服器應答,伺服器關閉tcp連線以及瀏覽器接受到伺服器響應的資料。

網路爬蟲是一種從網頁上抓取資料資訊並儲存的自動化程式。如果我們把網際網路比作一張大的蜘蛛網,資料便是存放於蜘蛛網的各個節點,而爬蟲就是乙隻小蜘蛛(程式),沿著網路抓取自己的獵物(資料)。下面簡要介紹一下爬蟲的基本概念與流程:

1.獲取網頁

網路爬蟲第一步首先是通過一定的方式獲取網頁。所謂獲取網頁可以簡單理解為在本地發起乙個伺服器請求,伺服器則會返回給我們網頁的源**,其中通訊的底層原理較為複雜,而python給我們封裝好了urllib庫和requests庫等,這些庫可以讓我們非常簡單的傳送各種形式的請求。

2.提取資訊

網頁的源**包含了非常多的資訊,而想要進一步的獲取我們的想要的資訊則需要對源**中的資訊進行進一步的提取。此時我們可以選用python中的re庫即通過正則匹配的形式去提取資訊,也可以採用beautifulsoup庫(bs4)等解析源**,除了有自動編碼的優勢之外,bs4庫還可以結構化輸出源**資訊,更易於理解與使用。

3.儲存資料

在提取到網頁源**中我們想要的資訊之後則需要在python中將它們儲存起來,可以使用通過內建函式open儲存為文字資料等,也可以通過第三方庫儲存為其它形式的資料,例如可以通過pandas庫儲存為常見的xlsx資料,如果有等非結構化資料還可以通過pymongo庫儲存至非結構化資料庫中。

4.自動化程式

在經過前三步即etl(extract-transform-load)過程之後就可以將我們的爬蟲**有效地組織起來構成乙個爬蟲自動化程式,以至於需要相同或相似資料的時候可以高效復用。

.發起請求伺服器返回狀態碼簡析:

1、200:請求正常,伺服器正常的返回資料。

2、301:永久重定向。比如在訪問www.jingdong.com的時候會重定向到www.jd.com.

3、302:臨時重定向。比如在訪問乙個需要登入的頁面的時候,而此時沒有登入,那麼就會重定向到登入頁面。

4、400:伺服器未找到請求的url,可能是請求的url錯誤。

5、403:伺服器拒絕訪問,許可權不夠。

6、404:伺服器無法正常提供資訊,或是伺服器無法回應,且不知道原因。

7、500:伺服器內部錯誤,可能是伺服器出現bug了。

傳送門python3爬蟲程式設計學習筆記(一)緣由

python3爬蟲學習筆記

爬蟲爬取京東某手機頁面 beautifulsoup 原文記錄內容太多現進行摘錄和分類 pip3 install jieba kou ubuntu python cat clahamlet.py usr bin env python coding utf 8 e10.1calhamlet.py def...

python3爬蟲筆記

請求 並提取 資料的 自動化 程式 發起請求 獲取響應內容 解析文字內容 儲存資料 1.瀏覽器傳送資訊給該 所在的伺服器,這個過程叫做http request。2.服務收到瀏覽器傳送的訊息後,能夠根據瀏覽器傳送訊息的內容,做相應的處理,然後把訊息回傳給瀏覽器。這個過程叫做http response。...

Python3爬蟲學習筆記0 0 綜述

歡迎捧場,博主前一段時間零零碎碎地學習了一些python爬蟲的知識,現在把一些學習內容整理出來,水平有限,難免出現錯誤,希望大家能夠批評指正,謝謝。該系列部落格的內容參照 崔慶才 靜覓的部落格內容完成,謝謝授權。python 版本 3.5 預備知識 python基礎,http協議,正規表示式,url...