在學習定位網頁信息的之前,我們首先需要了解一下各個術語(這部分有很多是網頁的知識,寫爬蟲需要對網頁有較爲深刻的認識,所以我羅列了很多知識點,掛一漏萬,歡迎大家補充;當然急着寫爬蟲的讀者可以略去不讀,日後回看):
- SGML/HTML/XML/XHTML
- SGML的全稱是Standard Generalized Markup Language(標準通用標記語言);
- HTML的全稱是Hyper Text Markup Language(超文本標記語言);
- XML的全稱是Extensible Markup Language(可拓展標記語言);
- XHTML是嚴格符合XML的HTML;
- 三者在時間的順序是SGML\HTML\XML,三者在功能和複雜度上做了權衡,都屬於標記語言,後兩者可用於網頁;
- DOM
- DOM的全稱是Document object model(文檔對象模型);
- 是一個可以用於操作結構化標準文檔\HTML\XML的結構、內容、風格的API,我們一般使用HTML DOM;
- 它的本質是一個api接口文檔,提供了一個接口的規範;實現過程是先解析文檔,然後將文本組織成一個DOM樹結構,最後開放符合DOM文檔的api接口。
- 一開始DOM在瀏覽器用js有實現,現在我們也可以自己實現dom;
- SAX
- SAX的全稱是Simple API for XML(用於處理XML事件驅動的推模型);
- 概念和DOM平行,但是不是由W3C(World Wide Web Consortium )提出來的,而是民間自己討論出來的一種標準;
- 它和DOM的區別是在於:DOM是將所有的xml讀入內存後一起建樹,相當於先掃描,後解析;而SAX的特點是邊掃描,邊解析;
- XSL
- XSL的全稱是EXtensible Stylesheet Language(擴展樣式表語言);
- 是W3C制定的另一種表現XML文檔的樣式語言。XSL是XML的應用,符合XML的語法規範,可以被XML的分析器處理;
- XSL的三個組成部分是XSLT\XPath\XSL-FO;XLST負責建樹,用XSL-FO分析並表現;
- XSL負責html的樣式渲染工作,而CSS可以完成html、xml的樣式渲染,DSSSL負責SGML的渲染;
- XSLT
- XSLT的全稱是Extensible Stylesheet Language Transformations(可擴展樣式錶轉換語言);
- 可以將XML數據檔轉換爲另外的XML或其它格式,如HTML網頁,純文字。是XML規範中的一部分。
- Xpath
- Xpath的全程是XML path language;
- 是一個用於在xml文檔中查找信息的語言,同樣適用於html;XQuery和XPointer均建在xpath上;
- Xpath最初是DOM裏面定位元素的方法;可以用xpath實現一個解析器;
- XSL-FO
- Xpath的全程是XSL Format object;
- 用於格式化信息;
- CSS
- CSS的全稱是Cascading Style Sheets(層疊式樣式表);
- 樣式表分爲轉換信息和格式化信息兩部分,在XSL中也有對應的概念;
- 解析器
- XML 解析器就是對DOM和SAX兩個規範的實現,例如:XML解析器將XML轉化爲XML DOM對象;通常瀏覽器會內置解析器;
- 當然我們還有樣式表解析器;
- Libxml2
- Libxml2是一個C語言下的xml解析器;被用於Gnome項目。
- Libxslt
- Libxslt是一個C語言下的XSLT實現;被用於Gnome項目。
- 內含樣式表解析器;
- LXML
- lxml是python的一個解析庫,支持HTML和XML的解析;使用了libxml\libxtls,而且解析效率非常高;且支持SAX風格的部分解析,也支持用戶自定義添加。
- Xquery/Xpoint
- 這兩個都是查詢語言,相應的解析器部分不知道怎麼實現的;
- BeautifulSoup
- bs4也是一個解析庫,支持HTML和XML的解析,支持4種解析器,