【爬虫攻略】爬虫所需的css基础

编程知识 更新时间:2023-04-06 07:09:42

css概述

css简介

css,也就是层叠样式表,是网页中常用的html,css,javascript,最重要的三部分之一

html已经完成了网页的内容和结构,为什么还需要css呢?事实上,在比较早的时候,人们对于网页的要求没有那么高,在html中就可以完成页面的结构和样式了,但是随着网页的不断发展,在html中同时完成网页的结构和样式的行为就渐渐的不再适宜了,主要原因在于,页面的样式写在了html里面,分散而混乱,没有一个整体的规划,修改起来也很不方便

因此,页面的结构和样式就分离了,成为了html和css两个部分,css就负责页面的样式,也就是页面的美观。也可以简单理解为,css就是让页面变得更好看的,可以使文字变大,变小,变漂亮

当然,早期的css确实也主要只做页面样式。但是随着flash的淘汰,以及javascript做动画的性能不高,主要在css3以后,css又增加了一个主要的功能,也就是只做动画。比如说页面等待时会出现的转圈圈的图标,有的时候会遇到的大风车等等,现在也是由css制作的

css的使用

使用css是很简单的,首先选择一个标签,然后为其设置属性即可,比如说,我们有以下的一个简单的html页面

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<title>css测试页面</title>
</head>
<body>
	<h1>这是一个h1标题</h1>
</body>
</html>

我们希望改变其中页面标题,也就是h1的样式,那么只要这样做即可,其中,在css里,注释使用/* */,这一点和html也很不一样

<style type="text/css">
	h1{
		color: red; /* 设置字体颜色 */
		font-size: 30px; /* 设置字体的大小 */
		text-align: center; /* 设置文字居中显示 */
		background-color: springgreen; /* 设置背景颜色 */
		padding: 20px 0px; /* 设置内部填充 */
	}

	h1:hover{ /* 设置鼠标悬浮样式 */
		color: gold;
		font-size: 50px;
		background-color: violet;
	}

</style>

如此简单设置以后,就可以看到一个很基础的页面效果了

css的引入方式

css可以在html的页面中直接使用,例如在head部分,加上style标签以后,就可以使用css了

当然,这种内嵌式的css很少会在比较大的网站,或者具有一定规模的网站上出现,一般都是通过link标签引入写好的css文件的

css文件一般的后缀名就是css,因此如果在请求中看到了.css的文件,我们基本上就可以确定,这是引入了一个样式文件

css对于爬虫的意义

本系列是爬虫攻略,自然不是主要用来介绍如何写css样式的,那么还是回到我们的最关心的问题。既然css是做页面样式的,那么它对于爬虫来说有什么意义呢?我们需要关心页面样式吗?

当然,通常意义上来说,css对于爬虫意义不大,一般不需要关注css的样式,这一点确实没错。不过css并非是对于爬虫没有用的。比如说,css选择器的使用,对于数据提取就是有意义的

除此之外,现在很多的页面反爬,也会用到css,比如说,在css中设置字体,使得html中全都是看不懂的文字,但是在浏览器的页面上就可以正常显示,再比如说,通过css将某些链接标签设置为了隐藏,在正常的页面中是看不到这些标签内容的,只有不正常的爬虫程序,才会在批量提取的时候,把这些隐藏标签提取出来,这样一点击,就会出现问题。当然,css反爬的内容十分复杂,并非本文的重点

总而言之,css虽然一般来说不是爬虫主要关注的内容,但是并非是没有作用的。尤其是css的选择器,是应该要掌握的内容

css选择器

基本选择器

最常用的选择器,也就是标签选择器,id选择器和类选择器,是必须要会使用的

类选择器使用.作为开头

<!-- 像这样一个class,我们应该使用的选择器是.content -->
<div class="content">这是一个普通无奇的div标签</div>

id选择器使用#作为开头

<!-- 像这样一个id,我们应该使用的选择器是#content -->
<div id="content">这是一个普通无奇的div标签</div>

标签选择器直接使用标签名即可

<!-- 像这样一个div标签,我们应该使用的选择器是div -->
<div id="content" class="content">这是一个普通无奇的div标签</div>

如果要选择全部,使用*即可

层级选择器

逗号和空格是不同的,这一点一定要注意区别,具体例子如下

<!-- 如果我们使用div, p,表示我们同时选中div标签和p标签 -->
<div id="content" class="content">这是一个普通无奇的div标签</div>
<p id="content" class="content">这是一个普通无奇的p标签</p>

如果使用空格的话,代表的是当前层次中的下一层,或者说嵌套在内部的那一层

<!-- 如果我们使用div p,表示我们选中的是div中的p标签 -->
<div id="content" class="content">
    <p>这是一个在div内部的p标签</p>
</div>

其他选择器

如果使用>,代表父节点是某个标签的标签,比如说div>p,这个选择器表示所有父节点是div标签的p标签

如果使用+,代表紧邻某个标签的标签,比如说div+p,这个选择器表示的是紧跟在div之后的所有p标签

如果使用[],代表存在某个属性的标签,比如说[href],这个选择器就表示所有有href属性的标签

如果使用[a=b],代表某个属性是某个值的标签,比如说[href=index],这个选择器就表示所有href属性为index的标签

如果使用[a~=b],代表某个属性中有某个值的标签,比如说[href~=index],这个选择器就表示所有href属性中有index的标签

css的选择器还有很多,当然很多选择器在爬虫中并不常用,因此在这里就不特别描述了。如果你有这方面的需求,可以查看css选择的文档,比如说查看菜鸟教程

css总结

css作为web页面的样式,自然是非常重要的存在。无论是文本,图片的属性样式的设置,css盒子模型的布局,伪类和伪元素的选择器,或者是css的动画,变形的制作,在web前端之中,都是极其重要的部分,是绝对不可以忽视的

当然,如同我们之前分析的那样,css对于爬虫的意义,相对而言就没有那么大了,至少对于爬虫来说,如果你没有学过css的话,并没有必要花很大力气去学习如何使用css设置样式,进行盒子布局等等

当然,我们之前也分析了,由于近些年反爬力度的提高,使用css进行反爬也比以前更多了,而恰恰由于很多爬虫程序员对于css的知识的不了解,在面对css反爬上,没什么好的办法,这也是事实

所以,最终,我的结论是,如果你觉得自己需要用到css的话,那么就有必要再专门进行一些学习。如果你并非专业人士,只是爬虫入门的话,那么对于css只需要进行简单的了解,学会基本的选择器就可以了,不需要现在就在这个方面上投入更多的时间学习了


查看更多python爬虫攻略,请点击这里

更多推荐

【爬虫攻略】爬虫所需的css基础

本文发布于:2023-04-06 07:09:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/169cccae20fc8fb0472d2fbbef46a191.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:爬虫   所需   攻略   基础   css

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 48604文章数
  • 14阅读数
  • 0评论数