Python3網絡爬蟲開發實踐讀書筆記 --- 第二章 爬蟲基礎

這一系列文章是我在閱讀「Python3網絡爬蟲開發實踐」一書以及其餘線上資料學習爬蟲過程當中的一些筆記和心得,但願能分享給你們。css

第二章 爬蟲基礎知識
章節結構:json

  • HTTP
  • 網頁
  • 爬蟲原理
  • 會話和Cookies
  • 代理

具體內容:瀏覽器

  • HTTP

1.URI (Uniform Resource Identifier 統一資源標識符) & URL (Universal Resource Locator 統一資源定位符)
URI = URL + URN (Universal Resource Name 統一資源名稱)
URL = 訪問協議 + 訪問路徑 + 資源名稱
URN = 訪問名稱
2.超文本 Hypertext
瀏覽器解析超文本(Ex.網頁HTML源代碼) -> 看到的網頁
3.HTTP(Hyper Text Transfer Protocol) & HTTPS(Hyper Text Transfer Protocol over Secure Socket Layer)
HTTP: 從網絡傳輸超文本數據到本地瀏覽器的傳送協議
HTTPS = HTTP + SSL -> 加密傳輸
4.HTTP請求過程
用戶在瀏覽器輸入URL回車 --- 瀏覽器向網址所在服務器發送請求 --- 服務器收到請求進行處理解析 --- 返回對應響應(頁面源代碼)--- 瀏覽器解析源代碼 --- 呈現網頁
One Request+Response process = Name(請求名稱,URL最後一部分) + Status(狀態碼) + Type(請求文檔類型) + Initiator(請求源) + Size(資源大小) + Time(發起請求到響應的總時間) + Waterfall(可視化瀑布流)
5.請求:客戶端 -> 服務端
請求 = 請求方法(Request Method: GET/POST/HEAD/PUT/DELETE/CONNECT/OPTION/TRACE) + 請求的網址(Request URL) + 請求頭(Request Header: Accept + Accept-Language + Accept-Encoding + Host + Cookie + Referer + User-Agent + Content=Type) + 請求體(Request Body: application/x-www-form-urlencoded | multipart/form-data | application/json | text/xml)
6.響應:響應狀態碼(Response Status Code) + 響應頭(Response Header = Data + Last-Modified + Content-Encoding + Server + Content-Type + Set-Cookie + Expires) + 響應體(Response Body)服務器

  • 網頁 = HTML(Hyper Text Markup Language 超文本標記語言) + JavaScript + CSS(Cascading Style Sheets 層疊樣式表)

HTML是描述網頁的框架,有標籤表示不一樣的元素
CSS是網頁排版央視標準,能夠定義HTML中節點的樣式,使網頁更美觀
節點樹:HTML中全部標籤訂義的都是節點,他們構成了一個HTML DOM樹
DOM(Document Object Modle 文檔對象模型): 定義了訪問HTML文檔的標準cookie

  • 爬蟲原理

互聯網和爬蟲 = 網和蜘蛛
網頁 = 網的節點
網頁之間的連接 = 網節點間的線網絡

爬蟲就是獲取網頁並提取和保存信息的自動化程序:獲取網頁(urllib/request etc.)--- 提取信息(Beautiful Soup/pyquery/lxml etc.) --- 保存數據(MySQL/MongoDB)app

可爬取的數據類型?
HTML,JSON, 二進制數據(視頻,圖片,音頻 etc.)和各類擴展文件(.js, .css, .conf etc.)框架

如何獲取JS渲染後的界面?模擬渲染過程學習

  • 會話和Cookies

靜態網頁 & 動態網頁
靜態網頁的內容是HTML編寫,文字圖片提早寫好的頁面,動態網頁是能夠根據解析傳入參數,動態變化呈現不一樣內容的網頁網站

無狀態HTTP
HTTP協議對於事務處理沒有記憶能力,好比用戶登陸過的信息,在下一次請求時,HTTP協議是不記得的,因此須要會話和Cookie,會話在服務器端保存用戶的會話信息,Cookie在客戶端用於下次放棄請求須要帶上的信息。

會話
會話是善始善終的一系列動做/信息。Web中的會話對象會存儲特定用戶會話所需的屬性和配置信息。

Cookies
Cookies是某些網站爲了辨別用戶身份,進行繪畫跟蹤而存儲在用戶本地終端上的數據
會話維持
客戶端第一次請求服務器,服務器返回帶有Set-Cookie的響應頭給客戶端用於標記用戶,瀏覽器再次訪問該服務器會把這個Cookie放到請求頭,這個攜帶了會話ID的Cookie會讓服務器找到對應的會話判斷用戶狀態

屬性結構
Name + Value + Domain(可訪問這個cookie的域名) + Max Age + Path + Size + HTTP(httponly字段,若是是true,只能在HTTP Header帶有這個信息,document.cookie訪問不行) + Secure

  • 代理

由於一些網站會有反爬蟲措施,好比封申請訪問次數過多的IP,這時候就須要用代理實現IP假裝。
基本原理:
代理服務器 proxy server,用於代理網絡用戶取取得網絡信息。即在本子和服務器之間搭了一箇中轉站,服務器看到的就會使中轉站的IP,從而實現假裝
爬蟲代理就是經過訪問過程當中不斷更換IP,防止真實IP被封
代理分類

協議區分 匿名程度區分
FTP代理服務器,HTTP代理服務器,SSL/TSL代理服務器,RTSP代理服務器(訪問流媒體服務器),Telnet代理服務器,POP3/SMTP代理服務器,SOCKS代理服務器 高度匿名代理,普通匿名代理,透明代理,間諜代理

代理設置網上免費代理付費代利服務

相關文章
相關標籤/搜索