Python爬蟲開發與專案實戰 2:Web前端基礎

CopperDong發表於2018-01-04

2.1 W3C標準

     網頁主要由三部分組成:結構、表現和行為

     對應的標準也分三方面:

          結構化標準語言:XHTML和XML

          表現標準語言:CSS

          行為標準:物件模型(DOM)、ECMAScript等

     HTML:瀏覽器通過標記來解釋頁面的內容。

          特點包括:

  • 可以設定文字的格式,比如標題、字號、文字顏色、段落,等等。
  • 可以建立列表
  • 可以插入影像和媒體
  • 可以建立表格
  • 超連結

      HTML的基本結構

            <html>:   文件標記

                <head>:  頭資訊開始標記。用來包含檔案的基本資訊,比如網頁的標題、關鍵字

                     <title>: 標題標記

                     <meta>:頁面的元資訊,提供有關頁面的元資訊,比如針對搜尋引擎和更新頻度的描述和關鍵詞

               <body>:網頁的主體部分

                     <br>: 強制換行標記

                     <p>:換段落標記

                     <center>:居中對齊標記

                     <pre>:預格式化標記,常用來定義計算機原始碼

                     <li>:列表專案標記

                     <ul>:無序列表標記,宣告這個列表沒有序號

                     <ol>:有序列表

                     <dl><dt><dd>:定義型列表,對列表條目進行簡短說明

                     <hr>:水平分割線標記

                     <div>:分割槽顯示標記,也稱為層標記,常用來編排一大段的HTML段落,也可用於將表格式化

                     <img>:影像標記

                     <a>:超連結

                     表格:包括<table>,<caption>,<tr>,<td>和<th>等標記

      CSS(Cascading Style Sheets)層疊樣式表,用來定義如何顯示HTML元素,目的是為了解決內容與表現分離的問題,在HTML中一般有三種做法

  • 內聯樣式表:CSS程式碼直接寫在現有的HTML標記中,使用style屬性改變樣式<body style="">   </body>
  • 嵌入式樣式表:CSS樣式寫在<style type="text/css">  </style>標記之間,一般情況下嵌入式CSS樣式寫在<head> </head>之間
  • 外部樣式表:CSS程式碼寫一個單獨的外部檔案中,.css檔案,使用<link>標記將CSS樣式檔案連結到HTML檔案內,如<link rel="StyleSheet" type="text/css" href="style.css">

         CSS規則有兩個主要的部分構成:

                選擇器:需要改變樣式的HTML元素

                宣告:有一個屬性和一個值組成

         根據選擇器的定義方式,可以將樣式表的定義分成三種方式:

                HTML標記定義:<p>   </p>樣式

                ID選擇器定義: 特定ID的HTML元素指定特定的樣式

                class選擇器定義:用於描述一組元素的樣式

          常見的屬性:

              顏色屬性:

              字型屬性:

              背景屬性:

              文字屬性:

              列表:

       JavaScript:是一種輕量級的指令碼語言,有兩種使用方法:

              1)直接插入程式碼:在<script> </script>標記中編寫程式碼,通常放在<head>中

              2)外部引用js檔案,<script> src='url'></script>的方式來引入

        基本語法:嚴格區分大小寫,

        資料型別和變數:Number型別(整數和浮點數),字串型別(單引號或雙引號)、布林值型別、陣列型別、物件型別(由鍵值組成的無序集合,將都是字串型別,值可以是人員資料型別)

        運算子和操作符:

        條件判斷:

        迴圈:for迴圈,和while迴圈

        函式:使用function 關鍵字

       XPath:一門在XML文件中查詢資訊的語言,通過元素和屬性進行導航。XPath雖然是被設計用來搜尋XML文件,不過它也能很好地在HTML文件中工作,並且大部分瀏覽器也支援通過XPath來查詢節點。

       XPath節點:

              有七種型別的節點:元素、屬性、文字、名稱空間、處理指令、註釋以及文件(根)節點。

              節點關係:父,子,同胞,先輩,後代

        XPath語法:使用路徑表示式來選取XML文件中的節點或節點集



        XPath軸:軸定義了所選節點與當前節點之間的樹關係。提取網頁中的資訊會遇到這種情況:首先提取到一個節點的資訊,然後想在這個節點的基礎上提取它的子節點或者父節點,這時候就會用到軸的概念。


       例項分析:

<?xml version="1.0" encoding="ISO-8859-1"?>
<classroom>
      <student>
              <id>1001</id>
              <name lang="en">marry</name>
              <age>20</age>
              <country>China</country>
      </student>
      <student>
           <id>1002</id>
           <name lang="en">jack</name>
           <age>25</age>
           <country>USA</country>
      </student>
      <teacher>
            <classid>1</classid>
            <name lang="en">tom</name>
            <age>50</age>
            <country>USA</country>
       </teacher>
</classroom>

         XPath運算子


       JSON:JavaScript物件表示法(JavaScript Object Notation),用於儲存和交換文字資訊。

              JSON名稱/值對、JSON值、JSON物件(字典)、JSON陣列({"reader": [ {}, {} ] })

2.2 HTTP標準

       HTTP協議:用於從WWW伺服器傳輸超文字到本地瀏覽器的傳送協議。它可以使瀏覽器更加高效,減少網路傳輸。它不僅保證計算機正確快速地傳輸超文字文件,還確定傳輸文件中的哪一部分,以及哪部分內容首先顯示(如文字先於圖形)等

       HTTP請求過程:請求響應模型,永遠是客戶端發起請求,伺服器回送響應。

             HTTP協議是一個無狀態的協議,同一個客戶端的這次請求和上次請求沒有對應關係。一次HTTP操作稱為一個事務,分四步:

  • 首先客戶端與伺服器需要建立連結
  • 建立連線後,客戶端傳送一個請求給伺服器,格式為:統一資源識別符號( URL)、協議版本號,後邊是MIME資訊,包括請求修飾符、客戶機資訊和可能的內容。
  • 伺服器接到請求後,給於響應的響應資訊,其格式為一個狀態行,包括資訊的協議版本號、一個成功或錯誤的程式碼,後邊是MIME資訊,包括伺服器資訊、實體資訊和可能的內容。
  • 客戶端接收伺服器所返回的資訊,通過瀏覽器將資訊顯示在使用者的螢幕上,然後客戶端與伺服器斷開連結

  HTTP狀態碼含義:在瀏覽器接收並顯示網頁前,此網頁所在的伺服器會返回一個包含HTTP狀態碼的資訊頭用以響應瀏覽器的請求。為了標識此次HTTP請求的執行狀態。

       常用的HTTP狀態碼:

  • 200-----請求成功
  • 301-----資源(網頁等)被永久轉移到其他URL
  • 404-----請求的資源(網頁等)不存在
  • 500-----內部伺服器錯誤。


       HTTP頭部資訊:由眾多的頭域組成,每個頭域有一個域名、冒號(:)和域值三部分組成。

       Cookie狀態管理:Cookie和Session都用來儲存狀態資訊,為了解決HTTP無狀態的問題所做的努力。對於爬蟲,更加關注的是Cookie,因為Cookie將狀態儲存在客戶端,Session將狀態儲存在服務端。

             Cookie,伺服器HTTP頭向客戶端傳送Cookie,瀏覽器會解析這些Cookie並將它們儲存為一個本體檔案,它會自動將同一伺服器的任何請求繫結上這些Cookie。

             Cookie的工作方式:伺服器給每個Session分配一個唯一的JSESSIONID,並通過Cookie傳送給客戶端。當客戶端發起新的請求的時候,將在Cookie頭中攜帶這個JSESSIONID。這樣伺服器能夠找到這個客戶端對應的Session,流程如下



        HTTP請求方式:包括GET, POST, HEAD, PUT, DELETE, OPTIONS        

           

相關文章