/前言/

今天小编给大家介绍Scrapy中另外一种选择器,即大家经常听说的CSS选择器。

/CSS基础/

CSS选择器和Xpath选择器的功能是一致的,都是帮助我们去定位网页结构中的某一个具体的元素,但是在语法表达上有区别。Xpath选择器明明已经可以帮助我们提取信息了,为什么还要学习CSS选择器呢?

萝卜青菜各有所爱,对于不同知识背景的小伙伴,都可以来提取网页信息。只要是能抓到老鼠的猫,都是好猫,同样的,只要能提取信息,不论是正则表达式、BeateafulSoup、Xpath选择器亦或是CSS选择器,都是好的选择器,只不过在效率和难易程度上不一样。此外,对应前端的小伙伴来说,CSS选择器对他们来说就简单很多。

CSS选择器功能强大,从实用性出发,下面是部分比较常用的一些CSS选择器语法,相对来说比较简单,但是也是非常实用的语法,希望大家都可以牢牢掌握,后期在提取网页信息的时候将会事半功倍。

有了以上的CSS基础之后,接下来我们进行实际应用。

/实际应用/

仍然以之前的网站为例进行说明,我们的目标数据是标题、发布日期、主题、正文内容、点赞数、收藏数、评论数等。

1、关于标题部分,之前我们利用Xpath的表达式的时候就分析过,得到了唯一性的定位标签,在此不再赘述,如下图所示。

2、仍然利用scrapyshell的调试模式进行助攻,结合上边的CSS基础语法,标题的具体CSS表达式如下图所示。

需要注意的是在CSS中获取标签文本内容的方式是在CSS表达式后边紧跟“::text”,记住是有两个冒号噢,与Xpath表达式不一样。这个表达式看上去比Xpath表达式要简洁一些,所以当某些情况下,大家如果觉得CSS选择器的表达式比Xpath表达式要简短或者理解起来相对容易的话,可以首选CSS选择器,没有具体的要求,大家根据自己的喜爱来进行选择即可,反之亦成立,当然也可以同时在一个爬虫文件将两个或者多个选择器进行交叉使用。

3、接下来是发布日期的提取,仍然是以交互式的方式实现网页与源码之间的交互,其中标签“entry-meta-hide-on-mobile”具有全局唯一性,可以很方便的定位到元素,如下图所示。

4、根据网页结构,我们可轻易的写出发布日期的CSS表达式,可以在scrapy shell中先进行测试,再将选择器表达式写入爬虫文件中,详情如下图所示。

5、关于文章主题标签的CSS表达式,可以看到其在网页结构上处于日期的下方,如下图所示。

6、通过更改一下发布日期的CSS表达式,即可获取到文章主题标签。文章主题标签处于a标签下,如下图所示。

获取到整个列表之后,利用join函数将数组中的元素以逗号连接生成一个新的字符串叫tags,然后写入Scrapy爬虫文件中去。

7、对于点赞数,其分析方法同之前一致,找到唯一的一个标签“vote-post-up”即可定位到数据。

8、点赞数在h10标签下,根据网页结构写出CSS表达式,调试的过程如下图所示。

取出的点赞数是个字符串,需要利用int()将其强制转换为数字。

/小结/

本文基于CSS理论基础,主要介绍了CSS选择器的简单语法和利用CSS选择器做相关数据采集,下一篇文章将继续分享CSS表达式数据采集方法,敬请期待,希望对大家的学习有帮助。

想学习更多关于Python的知识,可以参考学习网址:,点击阅读原文,可以直达噢~

【编辑推荐】

【责任编辑:

姜华

TEL:(010)68476606】

点赞 0

css 查看更多_在Scrapy中如何利用CSS选择器从网页中采集目标数据——详细教程(上篇)...相关推荐

  1. 在Scrapy中如何利用Xpath选择器从网页中采集目标数据——详细教程(下篇)

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 二十四桥明月夜, 玉人何处教吹箫. ...

  2. 在Scrapy中如何利用Xpath选择器从HTML中提取目标信息(两种方式)

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 坚定,严谨,勤奋,开拓 前一阵子我 ...

  3. css 查看更多_如何查看是否有人蹭网?教你判断是否有人蹭网的方法

    网速突然变慢或者上不了网我们就不禁怀疑是不是wifi被人蹭网了,我们如何查看我们的无线网络是不是被人蹭网了呢?下面小编就教你几招判断方法 1.通过路由器后台查看 2.通过360安全卫士查看 下面路由器 ...

  4. 【LittleXi】如何将bilibili中的视频嵌入到自己网页中

    [LittleXi]如何将bilibili中的视频嵌入到自己网页中 第一步 在b站找到自己想要的视频,鼠标移到视频上,点击右键获取视频的地址. 第二步 点击打开网站 第三步 将复制的地址粘到刚刚打开的 ...

  5. css按钮居中_你不一定知道的CSS最小和最大(宽度/高度)知识点及优缺点

    通常,我们希望限制元素相对于其父元素的宽度,同时使其具有动态性.因此,有一个基础宽度或高度的能力,使其扩展的基础上,可用的空间.比如说,我们有一个按钮,它的宽度应该是最小的,不应该低于它的宽度.这就是 ...

  6. css样式里把背景设置为图片,利用css如何设置全屏背景图片

    利用css如何设置全屏背景图片 如果你有一张比较绚烂的图片想做背景,可以这样设置,就跟随百分网小编一起去了解下吧,想了解更多相关信息请持续关注我们应届毕业生考试网! 代码如下: body{ backg ...

  7. 利用jsoup 如何从网页中下载图片

    来自:http://www.open-open.com/bbs/view/1320576549952 如何从网页中下载图片 如果做为爬虫很有必要从网页中下载图片到本地,那么我们利用jsoup来进行该操 ...

  8. android会中病毒吗,安卓手机浏览网页中病毒几率多大

    手机病毒作为一种新兴类型病毒在现今手机用户中迅速发展,尤其是我国进入4G网络之后,高带宽的手机通信传输网络为手机病毒的.传播都供了温床.那么,安卓手机浏览网页中病毒几率多大那?就让佰佰安全网的小编和你 ...

  9. php替换视频教程,替换掉视频运动中的文字 | 修改视频文字的内容(附带软件与详细教程)...

    对于广告视频宣传,不知狸友们曾经是否有过这样的想法,利用借势营销的手段,将某段热门的视频影视片段修改成广告的内容,以达到热点广告的目的.在这个互联网比较发达的时代,广告形式各式各样,唯有创新或者比较突 ...

最新文章

  1. 【学习笔记】《概率与期望全家桶》(ACM / OI)概率与期望 / 概率论知识小结
  2. webstorm配置ESLint 一直
  3. 基于python的网站_基于Python的网站爬虫应用研究
  4. 二叉树的建立以及先序、中序、后序遍历C语言实现---【递归方式】
  5. [js] Geolocation.getCurrentPosition()用来做什么的?在什么浏览器不受兼容?
  6. clientdataset 遍历字段_Delphi TClientDataSet[五]: 读取数据
  7. 通过SectionIndexer实现微信通讯录
  8. php怎样rc4加密,php 实现RC4加密解密
  9. 无意中发现的MSDN软件下载网站
  10. 一天到晚都在转笔,不需要写代码、调试,用眼看就行了?
  11. 出售永磁同步电机(pmsm)模型预测控制(MPC)matlab/simulink仿真模型,转速控制,电流控制,转矩控制,直接预测控制(有限集模型预测控制)(这单矢量和双矢量,三矢量),无差拍,foc矢
  12. C4D快速入门教程——软件界面介绍
  13. python打印实心菱形图案_python输入三角形三边求面积|python打印实心菱形图案
  14. 针对顽固dll后缀文件删除
  15. 秒云获得阿里云首批产品生态集成认证,携手阿里云共建云原生智能运维生态服务
  16. 打开计算机无法最小化,软件一打开就最小化到任务栏怎么办_电脑打开程序它就最小化的解决方法...
  17. mysql mycat水平分库_MyCat水平分库
  18. MySQL模糊查询 结果按匹配度 排序
  19. ADODB 入门(推荐)
  20. 个人- TODO计划表

热门文章

  1. 网页开发部署-开发工具MyEclips+Tomcat+mysql
  2. Leetcode--144. 二叉树的前序遍历(迭代递归)
  3. 【剑指offer】面试题32 - I:从上到下打印二叉树(Java)
  4. 使用浏览器获取网页模板(HTML+CSS)
  5. 计算机改成服务器,旧电脑主机如何改成服务器
  6. 表格打印没有左边线_office办公软件Excel表格的打印技巧,建议收藏
  7. 6-4 二叉树的非递归遍历 (25分)_本周小结!(二叉树)
  8. 记录用户转成超级用户的文件名字_一分钟了解Linux用户
  9. mysql数据表数据丢失6_MYSQL数据表损坏的原因分析和修复方法小结
  10. numpy将ndarray数据拼接合并