一、实验环境

1.Windows7x64_SP1

2.anaconda3 + python3.7.3(anaconda集成,不需单独安装)

3.scrapy1.6.0

二、用法举例

1.开启scrapy shell,在命令行输入如下命令:

scrapy shell http://doc.scrapy.org/en/latest/_static/selectors-sample1.html

结果如下:

2.提取a节点

  • xpath中用法

result = response.xpath('//a')

结果如下:

[<Selector xpath='//a' data='<a href="image1.html">Name: My image 1 <'>,
<Selector xpath='//a' data='<a href="image2.html">Name: My image 2 <'>,
<Selector xpath='//a' data='<a href="image3.html">Name: My image 3 <'>,
<Selector xpath='//a' data='<a href="image4.html">Name: My image 4 <'>,
<Selector xpath='//a' data='<a href="image5.html">Name: My image 5 <'>]
  • css中用法

result = response.css('a')

结果如下:

[<Selector xpath='descendant-or-self::a' data='<a href="image1.html">Name: My image 1 <'>,
<Selector xpath='descendant-or-self::a' data='<a href="image2.html">Name: My image 2 <'>,
<Selector xpath='descendant-or-self::a' data='<a href="image3.html">Name: My image 3 <'>,
<Selector xpath='descendant-or-self::a' data='<a href="image4.html">Name: My image 4 <'>,
<Selector xpath='descendant-or-self::a' data='<a href="image5.html">Name: My image 5 <'>]

  

3.查看result的类型

 type(result)

结果如下:

scrapy.selector.unified.SelectorList

说明:result为Selector组成的列表,也是SelectList类型,他们都可以继续调用xpath()和css()等方法,进一步提取数据。

4.查看result提取数据全部内容,使用extract()函数

result.extract()  

结果如下:

['<a href="image1.html">Name: My image 1 <br><img src="data:image1_thumb.jpg"></a>',
'<a href="image2.html">Name: My image 2 <br><img src="data:image2_thumb.jpg"></a>',
'<a href="image3.html">Name: My image 3 <br><img src="data:image3_thumb.jpg"></a>',
'<a href="image4.html">Name: My image 4 <br><img src="data:image4_thumb.jpg"></a>',
'<a href="image5.html">Name: My image 5 <br><img src="data:image5_thumb.jpg"></a>']

5.提取节点内容

  • xpath中用法,使用text()函数

response.xpath('//a/text()')

结果如下:

[<Selector xpath='//a/text()' data='Name: My image 1 '>,
<Selector xpath='//a/text()' data='Name: My image 2 '>,
<Selector xpath='//a/text()' data='Name: My image 3 '>,
<Selector xpath='//a/text()' data='Name: My image 4 '>,
<Selector xpath='//a/text()' data='Name: My image 5 '>]

查看HTML内容

response.xpath('//a/text()').extract()

结果如下:

['Name: My image 1 ',
'Name: My image 2 ',
'Name: My image 3 ',
'Name: My image 4 ',
'Name: My image 5 ']
  • css中用法

response.css('a::text').extract()

结果如下:

['Name: My image 1 ',
'Name: My image 2 ',
'Name: My image 3 ',
'Name: My image 4 ',
'Name: My image 5 ']

    

6.提取属性值

  • xpath中用法,使用/@属性名(如/@href)

response.xpath('//a/@href').extract()

结果如下:

['image1.html', 'image2.html', 'image3.html', 'image4.html', 'image5.html']
  • css中用法
response.css('a::attr("href")').extract()

结果如下:

['image1.html', 'image2.html', 'image3.html', 'image4.html', 'image5.html'] 

  

7.提取节点内部子节点

  • xpath中用法,/子节点名  

response.xpath('//a/img').extract()

结果如下:

['<img src="data:image1_thumb.jpg">',
'<img src="data:image2_thumb.jpg">',
'<img src="data:image3_thumb.jpg">',
'<img src="data:image4_thumb.jpg">',
'<img src="data:image5_thumb.jpg">']
  • css中用法

response.css('a img').extract()

结果如下:

['<img src="data:image1_thumb.jpg">',
'<img src="data:image2_thumb.jpg">',
'<img src="data:image3_thumb.jpg">',
'<img src="data:image4_thumb.jpg">',
'<img src="data:image5_thumb.jpg">']

  

  

再提取其中的src属性值,与步骤6相同

  • xpath用法

response.xpath('//a/img/@src').extract()
  • css用法

response.css('a img::attr("src")').extract()

  

8.公用方法

  • extract_first()  #用于提取第一个元素
  • extract_first('default value')   #同上,添加默认参数

scrapy xpath用法的更多相关文章

  1. xPath 用法总结整理

    xPath 用法总结整理   一.xpath介绍 XPath 是一门在 XML 文档中查找信息的语言.XPath 用于在 XML 文档中通过元素和属性进行导航. XPath 使用路径表达式在 XML ...

  2. scrapy xpath、正则表达式、css选择器

    scrapy xpath XPath即为XML路径语言,它是一种用来确定XML(标准通用标记语言的子集)文档中某部分位置的语言.XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力. 学习 ...

  3. scrapy基本用法

    scrapy官方文档http://doc.scrapy.org/en/latest/ 一.scrapy安装 安装lxml:pip3 install lxml 安装wheel:pip3 install ...

  4. scrapy Selector用法及xpath语法

    准备工作 html示例: <?xml version="1.0" encoding="UTF-8"?> <html <head> ...

  5. scrapy shell 用法(慢慢更新...)

    scrapy shell 命令 1.scrapy shell url #url指你所需要爬的网址 2.有些网址数据的爬取需要user-agent,scrapy shell中可以直接添加头文件, 第①种 ...

  6. 网络爬虫之Xpath用法汇总

    众所周知,在设计爬虫时,最麻烦的一步就是对网页元素进行分析,目前流行的网页元素获取的工具有BeautifulSoup,lxml等,而据我使用的体验而言,Scrapy的元素选择器Xpath(结合正则表达 ...

  7. Xpath用法

    在进行网页抓取的时候,分析定位html节点是获取抓取信息的关键,目前我用的是lxml模块(用来分析XML文档结构的,当然也能分析html结构), 利用其lxml.html的xpath对html进行分析 ...

  8. 扩展视图之xpath用法

    在视图扩展中,需要定位扩展字段需要显示的位置,通过xpath来实现定位 odoo 视图函数 在整个项目文件中,结构并不是十分明显,虽然它也遵循MVC设计,类比django的MTV模式,各个模块区分的十 ...

  9. Python re模块, xpath 用法

    1.re正则的用法总结 (1). ^ 表示以哪个字符为开头      eg:  '^g' 表示以g开头的字符串      . 表示任意字符 '^g.d'  表示以g开头第二个为任意字符,第三个为b的字 ...

随机推荐

  1. 牛逼了,教你用九种语言在JVM上输出HelloWorld

    我们在<深入分析Java的编译原理>中提到过,为了让Java语言具有良好的跨平台能力,Java独具匠心的提供了一种可以在所有平台上都能使用的一种中间代码——字节码(ByteCode). 有 ...

  2. Bzoj 2013 [Ceoi2010] A huge tower 题解

    2013: [Ceoi2010]A huge tower Time Limit: 10 Sec  Memory Limit: 259 MBSubmit: 471  Solved: 321[Submit ...

  3. spring boot 整合lombok+tkmapper+mybatis-generator

      1.lombok <dependency>    <groupId>org.projectlombok</groupId>    <artifactId& ...

  4. Excel催化剂开源第20波-条件格式版聚光灯功能,行列标示方便阅读

    Excel聚光灯功能,辅助数据查看,选择区域下的高亮显示所在行列位置,此功能已被广大Excel开发者研究得十分透彻,各种版本的聚光灯流转在网络里,同样地也是一大堆的VBA代码,难找.Net的现成代码, ...

  5. Hive的架构原理&Hive的安装步骤

    Hive架构图 元数据默认数据库是:Derby.开发使用MySQL Hive如何将SQL语句翻译成MapReduce的? 1.使用SQL解析器解析SQL语句 2.使用编译器进行编译逻辑 3.使用优化器 ...

  6. Git的一些简单而且常用的操作

    转载自我自己的博客 介绍 很多初学者可能并不太清楚Git 与GitHub 这两个概念的联系和区别,在这里我大致介绍一下这两个名词. Git 是一个免费.开源的分布式版本控制系统(VCS).版本控制系统 ...

  7. JSON的简单使用之提取多层嵌套的JSON(C#)

    JSON.NET(http://json.codeplex.com/)使用来将.NET中的对象转换为JSON字符串(序列化?),或者将JSON字符串转换为.NET中已有类型的对象(反序列化?) 反序列 ...

  8. springMVC保存数据到mysql数据库中文乱码问题解决方法

    1.web.xml中添加过滤器 <filter> <filter-name>CharacterEncodingFilter</filter-name> <fi ...

  9. Linux设备驱动程序学习----2.内核模块与应用程序的对比

    内核模块与应用程序的对比 更多内容请参考Linux设备驱动程序学习----目录 1. 内核模块与应用程序的对比 内核模块和应用程序之间的不同之处: 大多数中小规模的应用程序是从头到尾执行单个任务,而模 ...

  10. 【iOS】copy 关键字

    以前没注意过 iOS 的 copy, nonatomic, assign, weak, strong 等关键字. 偏偏今天遇到了一个问题,恰恰是关键字的问题,如图: 之前用的是 assign, 没有用 ...