爬虫 之 xpath

xpath是爬虫中一种分析页面数据的方法之一,可以补全非标准的html页面,方便获取数据,运用起来也比较简单,

首先呢,先说一下补全非标准的html

1-1

这里面的html是我自己写的一段简单的不完整的html,现在运行一下这段代码,可以看到缺失的代码已经自动补全了,像这种模块还有很多,例如:xml,bs4等。

1-2

下面开始获取页面中的内容了

先访问页面,下载页面源码。这里我就用requests了,以这个网址为例:https://search.jd.com/Search?keyword=%E8%A1%A3%E6%9C%8D&enc=utf-8&wq=%E8%A1%A3%E6%9C%8D&pvid=d3ff37dc76574151b4e63087334dfb24

1-2

运行一下就可以看到我们需要的源码已经下载下来了,为了防止我们下载的源码有缺失,进而影响我们的数据获取,我们使用xpath将页面补全。

html = etree.HTML(r)

现在我们就可以开始获取数据了,首先要先分析一下我们需要的数据在页面的那个结构中。

假如我们需要页面商品的链接

1-3

我们可以看到每个商品在一个div中,而这个div的class属性是p-img

那么我们就可以用xpath根据这个属性去获取数据

url =html.xpath("//div[@class='p-img']/a/@href")

这段代码是匹配:页面中class属性等于p-img的div,这个div中的a的href属性中的数据,也就是商品链接了,是不是很简单呢。其他数据也可以通过这种方法进行匹配

打印一下我们的url

1-4

将页面中的所有符合的数据返回成了一个列表。

具体的使用方法可以参考官方文档。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容