爬虫必学包 lxml,搞个有趣的

网站建设4年前发布
19 0 0

你好,我是zhenguo,今天搞点有趣的。,我们爬取网页后,无非是先定位到html标签,然后取其文本。定位标签,最常用的一个包lxml。,在这篇文章,我会使用一个精简后的html页面,演示如何通过lxml定位并提取出想要的文本,包括:,html,全称HyperText Markup Language,是超文本标记结构。,html组织结构对应数据结构的树模型。,因为是树,所以只有一个根节点,即一对<html></html>标签。一对<>和名称组合称为标签,例如,<html>被称为开始标签,</html>被称为结束标签。,开始标签中可以添加附加信息,风格为属性名=属性值。,如下所示,选中的<div>就是一个开始标签,它有属性id,值为content,还有属性style等:,lxml官档截图如下,按照官档的说法,lxml是Python语言中,处理XML和HTML,功能最丰富、最易于使用的库。,不难猜想,lxml中一定实现了查询树中某个节点功能,并且应该性能极好。,废话不多说,举例演示lxml超简便的定位能力。,导入lxml中的etree:,my_page是html风格的字符串,内容如下所示:,使用etree.fromstring转化为可以使用xpath的对象。,接下来,就能方便的定位:,取出一对标签中的内容,使用text()方法。,如下所示,取出属性名为foot的标签div中的text:,除了定位标签,获取标签间的内容外,也会需要提取属性对应值。,获取标签a下所有属性名为href的对应属性值,写法为://a/@href,得到结果:,还可以做一些特殊的定制操作,如使用findall方法,定位到div标签下带有a的标签。,使用text获取内容,a.attrib.get获取对应属性值。,最后注意一个区别,a_href等于第二个div标签下的子标签a的href属性值;,b_href等于第二个div标签下的子或所有后代标签下a的href属性值:,

© 版权声明

相关文章