關於爬蟲,你需要知道的HTML知識

日拱一卒|數據挖掘007

爬蟲涉及的技術包括但不限於熟練一門編程語言(這裏以 Python 爲例) HTML 知識、HTTP 協議的基本知識、正則表達式、數據庫知識,常用抓包工具的使用、爬蟲框架的使用、涉及到大規模爬蟲,還需要了解分佈式的概念、消息隊列、常用的數據結構和算法、緩存,甚至還包括機器學習的應用,大規模的系統背後都是靠很多技術來支撐的。(Python之禪 劉志軍)

一、什麼是HTML

HTML全稱Hyper Text Mark-up Language(超文本標記語言),它不是一種編程語言,而是一種標記語言 (markup language)。標記語言是一套標記標籤 (markup tag),HTML 使用標記標籤來描述網頁。

HTML是編寫網頁的語言,瀏覽器懂這門語言,爬蟲本質上是模擬瀏覽器抓取數據。因此懂些HTML知識對入門爬蟲很有幫助~

作爲一門語言,它有自己的語法規則,用來表示比“文本”更豐富的意義,比如圖片,表格,鏈接等。瀏覽器(IE,FireFox等)軟件知道HTML語言的語法,可以用來查看HTML文檔。目前互聯網上的絕大部分網頁都是使用HTML編寫的。

二、HTML長什麼樣?

HTML的語法:文本+標籤

即給文本加上表明文本含義的標籤(Tag),讓用戶(人或程序)能對文本得到更好的理解。

關於標籤:

  • HTML 標籤是由尖括號包圍的關鍵詞,比如 <html>
  • HTML 標籤通常是成對出現的,比如 <b> 和 </b>
  • 標籤對中的第一個標籤是開始標籤,第二個標籤是結束標籤
  • 開始和結束標籤也被稱爲開放標籤和閉合標籤
<html>
  <head>
    <title>歡迎來到簡書-皮壹俠</title>
  </head>
  <body>
    歡迎訪問<a href="https://www.jianshu.com/u/5a41eb2ceec6">皮壹俠的簡書主頁</a>!
  </body>
</html>

如果想嘗試,可以下載Notepad++來動手試一試

所有的HTML文檔都應該有一個<html>標籤

<html>標籤可以包含兩個部分:<head>和<body>

  • <head>標籤用於包含整個文檔的一般信息
    • 文檔的標題(<title>標籤用於包含標題)
    • 對整個文檔的描述
    • 文檔的關鍵字
    • ...
  • <body>標籤存放文檔的具體內容

上面代碼中,<a>標籤用於表示鏈接,在瀏覽器查看HTML文檔時,點擊<a>標籤括起來的內容時,通常會跳轉到另一個頁面。這個要跳轉到的頁面的地址由<a>標籤的href屬性指定

如上<a href="https://www.jianshu.com/u/5a41eb2ceec6">,href屬性的值就是https://www.jianshu.com/u/5a41eb2ceec6

三、HTML可以包含哪些內容?

通過不同的標籤,HTML文檔可以包含不同的內容,比如文本,鏈接,圖片,列表,表格,表單,框架等。

文本

  • HTML對文本的支持是最豐富的,你可以設置不同級別的標題,分段和換行,可以指定文本的語義和外觀,可以說明文本是引用自其它的地方,等等等等。

鏈接

  • 鏈接用來指出內容與另一個頁面或當前頁面某個地方有關。

圖片

  • 圖片用於使頁面更加美觀,或提供更多的信息。

列表

  • 列表用於說明一系列條目是彼此相關的。

表格

  • 表格是按行與列將數據組織在一起的形式。也有不少人使用表格進行頁面佈局。

表單

  • 表單通常由文本輸入框,按鈕,多選框,單選框,下拉列表等組成,使HTML頁面更有交互性。

框架

  • 框架使頁面裏能包含其它的頁面。

四、HTML文檔格式

HTML 文檔 = 網頁

  • HTML 文檔描述網頁
  • HTML 文檔包含 HTML 標籤和純文本
  • HTML 文檔也被稱爲網頁

Web 瀏覽器的作用是讀取 HTML 文檔,並以網頁的形式顯示出它們。瀏覽器不會顯示 HTML 標籤,而是使用標籤來解釋頁面的內容在HTML文本中,用尖括號括起來的部分稱爲標籤。
如果想在正文裏使用尖括號(或者大與號小與號,總之是同一個東西),必須使用字符轉義,也就是說轉換字符的原有意義。<應該使用&lt;代替,>則使用&gt;,至於&符號本身,則應該使用&amp;替代。

標籤本質上是對它所包含的內容的說明,可能會有屬性,來給出更多的信息。比如<img>(圖片)標籤有src屬性(用於指明圖片的地址),width和height屬性(用於說明圖片的寬度和高度)。

HTML裏能使用哪些標籤,這些標籤分別可以擁有哪些屬性,都是有規定的,後續如深入學習HTML其實就是學習這些標籤。

標籤通常有開始部分和結束部分(也被稱爲開始標籤和結束標籤),它們一起限定了這個標籤所包含的內容。

屬性只能在開始標籤中指定,屬性值可以用單引號或雙引號括起來。結束標籤都以/加上標籤名來表示。有時候,有些標籤並不包含其它內容(只包括自己的屬性,甚至連屬性都沒有),這種情況下,可以寫成類似這樣:<img src="logo.gif" />。(注意最後的一個空格和一個反斜槓),它說明這個標籤已經結束,不需要單獨的結束標籤了。

對比下:
<img src="logo.gif" />
<a href="http://www.baidu.com">百度</a>

注:HTML文檔裏所有的空白符(空格,Tab,換行,回車)會被瀏覽器忽略,唯一的例外是空格,對空格的處理方式是所有連續的空格被當成一個空格,不管有一個,還是兩個,還是100個。之所以有這樣的規則是因爲忽略空白符能讓使用HTML的作者以他覺得最方便的格式來排列內容,比如可以在每個標籤開始後增加縮進,標籤結束後減少縮進。由於英語文本中空格用得很普遍(用於分隔單詞),所以對空格做了這樣的特殊處理。如果要顯示連續的空格(比如爲了縮進),應該用&nbsp;來代表空格。


五、常用標籤介紹

(一)文本

(二)圖片

(三)鏈接

(四)分段與換行

(五)表格

(六)列表

(七)框架

若繼續深入瞭解,可以瀏覽 .W3school HTML教程

參考資料:
1.HTML 30分鐘入門教程
2.Python爬蟲知識點梳理
3..W3school HTML教程
4.HTML文檔基本格式


公衆號推薦
Python之禪

關於日拱一卒
2019年
日拱一卒選擇
英語和數據挖掘
英語 輸出300次 打卡/筆記
數據 輸出200篇 筆記

有願意參與到日拱一卒玩
可以私信 我們拉個小羣
新年共同進步~

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