爬虫学习[3]
高性能HTML性能内容解析
通过前面的学习,直接从网页得到所需要的信息没有太大的问题,但是网页是一种结构化的数据。直接使用正则表达式进行查找就好像是地摊式搜寻,这种方法是普适的,但是与之相对的是效率较为低下。如果我们可以利用好结构化的结果,对数据进行解析,从而提升效率那不是更好吗。
HTML基础
HTML也就是前面章节提到的网页源代码,是一种结构化的标记语言。HTML可以描述一个网页的结构信息。HTML与CSS(Cascading Style Sheets,层叠样式表)、JavaScript一起构成了现代互联网的基石,常见的HTML形式如下:
html的层级关系就像一棵树一样。
XPath的介绍
XPath(XML Path)是一种查询语言,它能在XML(Extensible MarkupLanguage,可扩展标记语言)和HTML的树状结构中寻找结点。形象一点来说,XPath就是一种根据“地址”来“找人”的语言。用正则表达式来提取信息,经常会出现不明原因的无法提取想要内容的情况。最后即便绞尽脑汁终于把想要的内容提取了出来,却发现浪费了太多的时间。需要寻找的内容越复杂,构造正则表达式所需要花费的时间也就越多。而XPath却不一样,熟练使用XPath以后,构造不同的XPath,所需要花费的时间几乎是一样的,所以用XPath从HTML源代码中提取信息可以大大提高效率。在Python中,为了使用XPath,需要安装一个第三方库:lxml。
安装过程略去,使用的大致方法为:
import lxml