Python爬蟲開發與專案實戰 2:Web前端基礎
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
相關文章
- Python爬蟲開發與專案實戰——基礎爬蟲分析Python爬蟲
- Python爬蟲開發與專案實戰(2)Python爬蟲
- Python爬蟲開發與專案實戰pdfPython爬蟲
- Python爬蟲開發與專案實戰(1)Python爬蟲
- Python爬蟲開發與專案實戰 3: 初識爬蟲Python爬蟲
- python爬蟲實操專案_Python爬蟲開發與專案實戰 1.6 小結Python爬蟲
- 《python 爬蟲開發與實戰》html基礎詳解Python爬蟲HTML
- [Python3網路爬蟲開發實戰] 2-爬蟲基礎 2-網頁基礎Python爬蟲網頁
- Python爬蟲開發與專案實戰--分散式程式Python爬蟲分散式
- 不踩坑的Python爬蟲:Python爬蟲開發與專案實戰,從爬蟲入門 PythonPython爬蟲
- Python爬蟲開發與專案實戰 4: HTML解析大法Python爬蟲HTML
- python書籍推薦-Python爬蟲開發與專案實戰Python爬蟲
- Python爬蟲開發與專案實踐(3)Python爬蟲
- 視訊教程-Python網路爬蟲開發與專案實戰-PythonPython爬蟲
- 讀書筆記:《Python3網路爬蟲開發實戰》——第2章:爬蟲基礎筆記Python爬蟲
- 《Python爬蟲開發與專案實戰》總結 第二章Python爬蟲
- Python大型網路爬蟲專案開發實戰(全套)Python爬蟲
- Python爬蟲開發與專案實戰 1:回顧Python程式設計Python爬蟲程式設計
- Python爬蟲開發(二):整站爬蟲與Web挖掘Python爬蟲Web
- [Python3網路爬蟲開發實戰] 2-爬蟲基礎 1-HTTP基本原理Python爬蟲HTTP
- 完整的python專案例項-《Python爬蟲開發與專案實戰》pdf完整版Python爬蟲
- 基礎爬蟲案例實戰爬蟲
- python爬蟲-33個Python爬蟲專案實戰(推薦)Python爬蟲
- [Python3網路爬蟲開發實戰] 2-爬蟲基礎 5-代理的基本原理Python爬蟲
- Python網路爬蟲實戰專案大全 32個Python爬蟲專案demoPython爬蟲
- python專案開發例項-Python專案案例開發從入門到實戰——爬蟲、遊戲Python爬蟲遊戲
- python爬蟲實戰教程-Python爬蟲開發實戰教程(微課版)Python爬蟲
- 爬蟲專案實戰(一)爬蟲
- 爬蟲實戰專案集合爬蟲
- 爬蟲實戰專案合集爬蟲
- python3網路爬蟲開發實戰_Python3 爬蟲實戰Python爬蟲
- Python網路爬蟲實戰小專案Python爬蟲
- Python網路爬蟲實戰專案大全!Python爬蟲
- Python爬蟲入門(2):爬蟲基礎瞭解Python爬蟲
- Python開發爬蟲專案+程式碼Python爬蟲
- Java 爬蟲專案實戰之爬蟲簡介Java爬蟲
- Go語言專案實戰:併發爬蟲Go爬蟲
- Python 爬蟲實戰(2):股票資料定向爬蟲Python爬蟲