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