TML是超文本標記語言(英語:HyperText Markup Language,簡稱:HTML)是一種用于創建網頁的標準標記語言。
您可以使用 HTML 來建立自己的 WEB 站點,HTML 運行在瀏覽器上,由瀏覽器來解析。
.HTML指的是超文本標記語言
.HTML不是編程語言,而是一種標記語言
.標記語言是一套標記標簽
.HTML使用標記標簽來描述網頁
.HTML文檔包含了HTML標簽和文本內容
.HTML文檔也叫做web頁面
HTML實例:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title> HTML教程實例</title>
</head>
<body>
<h1>我的第一個標題</h1>
<p>我的第一個段落</p>
</body>
</html>
注意:對于中文網頁需要使用<meta charset="udf-8">聲明編碼,否則出現亂碼。有些瀏覽器(如 360 瀏覽器)會設置 GBK 為默認編碼,則你需要設置為 <meta charset="gbk">。
實例解析:
<!DOCTYPE html>聲明為HTML5文檔
<html>元素是HTML頁面的根元素
<head>元素包含了文檔的元數據
<title>元素描述了文檔的標題
<body>元素包含了可見的頁面內容
<h1>元素定義一個大標題
<p>元素定義一個段落
TML 實例
<!DOCTYPEhtml><html><head><metacharset="utf-8"><title>菜鳥教程(runoob.com)</title></head><body><h1>我的第一個標題</h1><p>我的第一個段落。</p></body></html>
實例解析
DOCTYPE 聲明了文檔類型
位于標簽 <html> 與 </html> 描述了文檔類型
位于標簽 <body> 與 </body> 為可視化網頁內容
位于標簽 <h1> 與 </h1> 作為一個標題使用
位于標簽 <p> 與 </p> 作為一個段落顯示
<!DOCTYPE html> 在HTML5中也是描述了文檔類型。 |
什么是HTML?
HTML 是用來描述網頁的一種語言。
HTML 指的是超文本標記語言: HyperText Markup Language
HTML 不是一種編程語言,而是一種標記語言
標記語言是一套標記標簽 (markup tag)
HTML 使用標記標簽來描述網頁
HTML 文檔包含了HTML 標簽及文本內容
HTML文檔也叫做 web 頁面
HTML 標簽
HTML 標記標簽通常被稱為 HTML 標簽 (HTML tag)。
HTML 標簽是由尖括號包圍的關鍵詞,比如 <html>
HTML 標簽通常是成對出現的,比如 <b> 和 </b>
標簽對中的第一個標簽是開始標簽,第二個標簽是結束標簽
開始和結束標簽也被稱為開放標簽和閉合標簽
<標簽>內容</標簽>
HTML 元素
"HTML 標簽" 和 "HTML 元素" 通常都是描述同樣的意思.
但是嚴格來講, 一個 HTML 元素包含了開始標簽與結束標簽,如下實例:
HTML 元素:
<p>這是一個段落。</p>
Web 瀏覽器
Web瀏覽器(如谷歌瀏覽器,Internet Explorer,Firefox,Safari)是用于讀取HTML文件,并將其作為網頁顯示。
瀏覽器并不是直接顯示的HTML標簽,但可以使用標簽來決定如何展現HTML頁面的內容給用戶:
HTML 網頁結構
下面是一個可視化的HTML頁面結構:
<html>
<head>
<title>頁面標題</title>
</head>
<body>
<h1>這是一個標題</h1>
<p>這是一個段落。</p>
<p>這是另外一個段落。</p>
</body>
</html>
只有 <body> 區域 (白色部分) 才會在瀏覽器中顯示。 |
HTML版本
從初期的網絡誕生后,已經出現了許多HTML版本:
版本 | 發布時間 |
---|---|
HTML | 1991 |
HTML+ | 1993 |
HTML 2.0 | 1995 |
HTML 3.2 | 1997 |
HTML 4.01 | 1999 |
XHTML 1.0 | 2000 |
HTML5 | 2012 |
XHTML5 | 2013 |
<!DOCTYPE> 聲明
<!DOCTYPE>聲明有助于瀏覽器中正確顯示網頁。
網絡上有很多不同的文件,如果能夠正確聲明HTML的版本,瀏覽器就能正確顯示網頁內容。
doctype 聲明是不區分大小寫的,以下方式均可:
<!DOCTYPE html>
<!DOCTYPE HTML>
<!doctype html>
<!Doctype Html>
通用聲明
HTML5
<!DOCTYPE html>
HTML 4.01
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
XHTML 1.0
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
查看完整網頁聲明類型 DOCTYPE 參考手冊。
中文編碼
目前在大部分瀏覽器中,直接輸出中文會出現中文亂碼的情況,這時候我們就需要在頭部將字符聲明為 UTF-8。
HTML 實例
<!DOCTYPEhtml><html><head><metacharset="UTF-8"><title>頁面標題</title></head><body><h1>我的第一個標題</h1><p>我的第一個段落。</p></body></html>
如您還有不明白的可以在下面與我留言或是與我探討QQ群308855039,我們一起飛!
eautifulSoup簡稱BS4(其中4表示版本號)是一個Python第三方庫,它可以從HTML或XML文檔中快速地提取指定的數據。BeautifulSoup語法簡單,使用方便,并且容易理解,因此您可以快速地學習并掌握它。本節我們講解BS4的基本語法。
由于BautifulSoup是第三方庫,因此需要單獨下載,下載方式非常簡單,執行以下命令即可安裝:
pip install bs41復制代碼類型:[python]
由于BS4解析頁面時需要依賴文檔解析器,所以還需要安裝lxml作為解析庫:
pip install lxml1復制代碼類型:[python]
Python也自帶了一個文檔解析庫html.parser,但是其解析速度要稍慢于lxml。除了上述解析器外,還可以使用html5lib解析器,安裝方式如下:
pip install html5lib1復制代碼類型:[python]
該解析器生成HTML格式的文檔,但速度較慢。
“解析器容錯”指的是被解析的文檔發生錯誤或不符合格式時,通過解析器的容錯性仍然可以按照既定的正確格式實現解析。
創建BS4解析對象是萬事開頭的第一步,這非常地簡單,語法格式如下所示:
#導入解析包
from bs4 import BeautifulSoup
#創建beautifulsoup解析對象
soup = BeautifulSoup(html_doc, 'html.parser')1234復制代碼類型:[python]
下面對爬蟲中經常用到的BS4解析方法做詳細介紹。
BeautifulSoup將HTML文檔轉換成一個樹形結構,該結構有利于快速地遍歷和搜索HTML文檔。下面使用樹狀結構來描述一段HTML文檔:
<html><head><title>開課吧廣場</title></head><h1>topic.kaikeba.com</h1><p><b>一個學習編程的網站</b></p></body></html>1復制代碼類型:[python]
樹狀圖如下所示:
文檔樹中的每個節點都是Python對象,這些對象大致分為四類:Tag,NavigableString,BeautifulSoup,Comment。其中使用最多的是Tag和NavigableString。
Tag:標簽類,HTML文檔中所有的標簽都可以看做Tag對象。
NavigableString:字符串類,指的是標簽中的文本內容,使用text、string、strings來獲取文本內容。
BeautifulSoup:表示一個HTML文檔的全部內容,您可以把它當作一個人特殊的Tag對象。
Comment:表示HTML文檔中的注釋內容以及特殊字符串,它是一個特殊的NavigableString。
1)Tag節點
標簽(Tag)是組成HTML文檔的基本元素。在BS4中,通過標簽名和標簽屬性可以提取出想要的內容。
Tag對象提供了許多遍歷tag節點的屬性,比如contents、children用來遍歷子節點;parent與parents用來遍歷父節點;而next_sibling與previous_sibling則用來遍歷兄弟節點。
find_all()與find()是解析HTML文檔的常用方法,它們可以在HTML文檔中按照一定的條件(相當于過濾器)查找所需內容。find()與find_all()的語法格式相似,希望大家在學習的時候,可以舉一反三。
BS4庫中定義了許多用于搜索的方法,find()與find_all()是最為關鍵的兩個方法,其余方法的參數和使用與其類似。
1)find_all()
find_all()方法用來搜索當前tag的所有子節點,并判斷這些節點是否符合過濾條件,最后以列表形式將符合條件的內容返回,語法格式如下:
find_all(name,attrs,recursive,text,limit)
參數說明:
name:查找所有名字為name的tag標簽,字符串對象會被自動忽略。
attrs:按照屬性名和屬性值搜索tag標簽,注意由于class是Python的關鍵字嗎,所以要使用"class_"。
recursive:find_all()會搜索tag的所有子孫節點,設置recursive=False可以只搜索tag的直接子節點。
text:用來搜文檔中的字符串內容,該參數可以接受字符串、正則表達式、列表、True。
limit:由于find_all()會返回所有的搜索結果,這樣會影響執行效率,通過limit參數可以限制返回結果的數量。
2)find()
find()方法與find_all()類似,不同之處在于find_all()會將文檔中所有符合條件的結果返回,而find()僅返回一個符合條件的結果,所以find()方法沒有limit參數。
BS4支持大部分的CSS選擇器,比如常見的標簽選擇器、類選擇器、id選擇器,以及層級選擇器。BeautifulSoup提供了一個select()方法,通過向該方法中添加選擇器,就可以在HTML文檔中搜索到與之對應的內容。
開課吧廣場-人才學習交流平臺
*請認真填寫需求信息,我們會在24小時內與您取得聯系。