python css selector_Python爬虫之Selector的用法
引言
我们之前介绍了Beautiful Soup、pyquery以及正则表达式来提取网页数据,这确实十分方便。而Scrapy还提供了自己的数据提取方法,即Selector(选择器)。Selector是基于lxml来构建的,支持Xpath选择器、CSS选择器以及正则表达式,功能全面,解析速度和准确度非常高。本节我们将介绍Selector的用法。
直接使用
Selector是一个可以独立使用的模块。我们可以直接利用Selector这个类来构建一个选择器对象,然后调用它的相关方法如xpath( )、css( )等来提取数据。
例如,针对一段HTML代码,我们可以用如下方式构建Selector对象来提取数据:
运行结果如下:
我们在这里没有在Scrapy框架中运行,而是把Scrapy中的Selector单独拿出来使用了,构建的时候传入text参数,就生成了一个Selector选择器对象,然后就可以像前面我们所用的Scrapy中的解析方式一样,调用xpath( )、css( )等方法来提取了。
在这里我们查找的是源代码中的title中的文本,在Xpath选择器最后加text( )方法就可以实现文本的提取了。
以上内容就是Selector的直接使用方法。同Beautiful Soup等库类似,Selector其实也是强大的网页解析库。如果方便的话,我们也可以在其他项目中直接使用Selector来提取数据。
接下来,我们用实例来详细讲解Selector的用法。
Scrapy shell
由于Selector主要是与Scrapy结合使用,如Scrapy的回调函数中的参数response直接调用xpath( )或者css( )方法来提取数据,所以在这里我们借助Scrapy shell来模拟Scrapy请求的过程,来讲解相关的提取方法。
我们用官方文档的一个样例界面来作为我们的演示:
接着我们就可以开启Scrapy shell,在命令行输入如下命令:
scrapy shell + 网址
这样我们就进入到了scrapy shell模式。这个过程其实是,Scrapy发起了一次请求,请求的URL就是刚才命令行下输入的URL,然后把一些可操作的变量传递给我们,如request、response等,如下所示:
我们可以在命令行模型下输入命令调用对象的一些操作方法,回车之后实时显示结果。这与Python命令行交互模式是类似的。
接下来,演示的实例都将页面的源码作为分析目标,页面源码如下所示:
python css selector_Python爬虫之Selector的用法相关推荐
- python bs4模块_python爬虫之Beautifulsoup模块用法详解
什么是beautifulsoup: 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.(官方) beautifulsoup是 ...
- Python之网络爬虫完全教程
[Python]网络爬虫(一):抓取网页的含义和URL基本构成 一.网络爬虫的定义 网络爬虫,即Web Spider,是一个很形象的名字. 把互联网比喻成一个蜘蛛网,那么Spider就是在网上爬来爬去 ...
- Python|并发编程|爬虫|单线程|多线程|异步I/O|360图片|Selenium及JavaScript|Scrapy框架|BOM 和 DOM 操作简介|语言基础50课:学习(12)
文章目录 系列目录 原项目地址 第37课:并发编程在爬虫中的应用 单线程版本 多线程版本 异步I/O版本 总结 第38课:抓取网页动态内容 Selenium 介绍 使用Selenium 加载页面 查找 ...
- 教你用python制作一个爬虫软件,城市二手房信息一览无余。
近年来随着我国二手房市场的逐渐放开,进入市场的二手房数量不断增加,二手房交易规模不断扩大,市场规模也在不断增长.数据显示,截至2018年末,我国累计二手房交易金额已经超过30万亿元:2019年我国二手 ...
- Python零基础爬虫之回车桌面壁纸并实现自动换壁纸(内附完整源码)
前言 嗨喽,大家好,这里是魔王~ [课题]: Python零基础爬虫之回车桌面壁纸 [课题介绍]: 壁纸不应该只是一张图片,它应该是一门哲学 回车桌面网100000张无水印,高分辨率,电脑桌面壁纸, ...
- python简单网站爬虫-爬取北京7天最高、最低气温
python简单网站爬虫-爬取北京7天最高.最低气温 前置操作: 1.待爬取网站: 北京天气的网址: http://www.weather.com.cn/weather1d/101010100.sht ...
- python语言if语句-Python入门教程之if语句的用法
这篇文章主要介绍了Python入门教程之if语句的用法,是Python入门的基础知识,需要的朋友可以参考下 OK分享完毕!需要Python资料的可以加QQ群:832339352 进群免费领取下面资料! ...
- Python即时网络爬虫项目: 内容提取器的定义(Python2.7版本)
1. 项目背景 在Python即时网络爬虫项目启动说明中我们讨论一个数字:程序员浪费在调测内容提取规则上的时间太多了(见上图),从而我们发起了这个项目,把程序员从繁琐的调测规则中解放出来,投入到更高端 ...
- python网络爬虫_python小知识,基于Python 的网络爬虫技术分析
在现阶段大数据的时代中,想要实现对数据的获取和分析,要先具备足够的数据源,网络爬虫技术就为其数据获取提供了良好的条件,且还能够实现对数据源的目的性采集. 在网络爬虫技术应用中,Python 脚本语言的 ...
最新文章
- JAVA String format 方法使用介绍
- xadmin 更改后台一级目录名称
- python学习软件-python软件学习从入门到精通
- stm32f405xx.h头文件的问题Undefined symbol IS_TIM_BREAK_INSTANCE
- 2016-2017 Central Europe Regional Contest Hangar Hurdles 克鲁斯卡尔重构树 + 建图
- P4564 [CTSC2018]假面(期望)
- 听说IT人的目标都是成为架构师,那么请收下这份架构养成计划
- Initializing Java Tooling 30% 停住不动了
- SQL SERVER将多行数据合并成一行(转载)
- 十、MySQL的应用大全
- (JButton) e.getSource();是什么意思
- 文献阅读2019-Computer-aided diagnosis system for breast ultrasound images using deep learning
- 手游联运平台是怎样开发的?
- python 图片验证码
- 云ERP的创新到底在哪?
- Adobe Photoshop CS5如何调出标尺和网格
- 【已解决】如何用Python执行终端命令cmd(使用suprocess.run,并获取到stderror)
- <Android开发> Android vold - 第二篇 vold 的main()函数简介
- 金融类考试有什么公式汇总?
- 音频视频转换隐私政策