一、实验环境

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. 搭建Spring Initializr服务器

    前言 按照网上很多教程,出错特别多.首先是GitHub和maven仓库的网络环境比较差,踩了很多坑:其次是SpringInitializr更新迭代几个版本,0.7.0我也没能弄成功.索性就用了旧版本0 ...

  2. R030---手把手教程:你有一条RPA发送的工资条待查收

    ​一.缘起 前2天写了<R029---简述:用UiPath实现RPA(工作流程自动化)(基础知识篇)>,本篇作为补充. 实战出真知,以做代学,下面以一个HR的真实场景举例实践,用UiPat ...

  3. Ubuntu搭建hugo博客

    自己搭建了一个博客用hugo,后因自己搭建的博客上传文章,搞一些东西不方便,就创建了现在这个博客,不过还是把如何搭建hugo的过程记录以下. Ubuntu下的操作 1. 下载Git 打开终端 Ctrl ...

  4. python递归-三元表达式-列表生成式-字典生成式-匿名函数-部分内置函数-04

    递归 递归: # 函数在调用阶段直接或间接地又调用了自身 应用场景: # 将列表中的数字依次打印出来(循环的层数是你必须要考虑的点)   -->  l = [1, [2, [3, [4, [5, ...

  5. CGI,WSGI区别

    WSGI 参考link:https://jingtyu.gitbooks.io/learning-openstack/content/351-usgi.html(本人的gitbook) 个人理解: w ...

  6. java - java集合类

    1.接口实现类 ①List List list1 = new ArrayList(); List list2 = new LinkedList(); ②Set Set<String> se ...

  7. golang 任意类型之间相互转换

    在处理一些参数的时候,可能需要将参数转换为各种类型,这里实现一个通用的转换函数,实现各种类型之间的相互转换. 当然,如果源数据格式和目标数据类型不一致,是会返回错误的.例如将字符串“一二三”转换为数值 ...

  8. IO-Java实现文件的复制

    public class FileCopy { public static void main(String[] args) throws IOException { // 1.创建一个字节输入流对象 ...

  9. DotSpatial安装、类库引用方法

    解决VS工具栏添加DotSpatial后,控件不全问题. 注意注意注意:不要使用Nuget安装DotSpatial!!! 我在Nuget上把所有DotSpatial的版本都安装了一遍,都缺少控件,然后 ...

  10. 关于STM32GPIO按键上下拉配置的认识

    说真的,后知后觉这个问题还是有点值得研究的,一开始学习我用的板子在按键模块电路中GPIO输入脚是有外部上下拉电阻的,如下图所示:当KEY1接V3.3,在其后为它接一个下拉电阻,可以保证按下按键输入高电 ...