python爬虫选择器的使用

  1. 在爬虫中,我们首先要能定位到我们需要获取的元素,这个时候就需要使用合适的选择器去定位。
  2. 正则表达式选择器
  3. CSS选择器
  4. xpath选择器

在爬虫中,我们首先要能定位到我们需要获取的元素,这个时候就需要使用合适的选择器去定位。

正则表达式选择器

如果要选择a标签中的Name后面的值,可以这样写:reponse.xpath('//a/text()').re('Name:\s(.*)')括号里面就是我们要输出的值,其中\s代表特殊字符 如:空格等等。另外如果想要匹配返回的第一个值 reponse.xpath('//a/text()').re_first('Name:\s(.*)'),另外注意一个问题 如果只想匹配一个字符串前面的几个 然后后面的不想匹配的话可以加一个?这个表示非贪心匹配。

CSS选择器

假如选择一个a节点response.css('a')即可,如果要选择a节点中的img属性response.css('a[href="image1.html"] img').extract这样就可以得到图片的属性,注意一点img前面有一个空格。如果要获得a标签内部的文本可以这样写:response.css('[href="image1.html"]::text').extract(),如果要获取a标签里面的img标签的可以这样写:response.css('a[href="image1.html"] img::attr(src)').extract(),如果要获取a标签里面的img标签下面的所有内容可以这样写:

第一种:response.xpath('//a/img/@src').extract()
第二种: response.xpath('//a').css('img').xpath('@src').extract()
第三种:response.css('a img::attr(src)').extract()

xpath选择器

xpath选择器中,使用//代表从html结点开始提取信息,如果采用.(点) 则代表提取元素内部的数据,比如从a结点中提取当中的img属性,只需要xpath("./img")就可以了。如果要提取a标签中的文本的信息,xpath("//a/text()").extract(),如果要提取a标签中的href标签的信息xpath("//a/@href").extract(),如果提取某一个标签当中的值不存在时,继续这样会报错,所以我们需要用到extract_first(),比如:xpath('//a[@href="omgass"]').extract_first("default image"),如果不存在就用defalut image返回信息。


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 1990858822@qq.com

文章标题:python爬虫选择器的使用

本文作者:XIAOK Z

发布时间:2019-09-01, 19:32:00

最后更新:2019-09-01, 19:47:15

原始链接:http://yoursite.com/2019/09/01/python爬虫选择器的使用/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏