在学习定位网页信息的之前,我们首先需要了解一下各个术语(这部分有很多是网页的知识,写爬虫需要对网页有较为深刻的认识,所以我罗列了很多知识点,挂一漏万,欢迎大家补充;当然急着写爬虫的读者可以略去不读,日后回看):
- 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种解析器,