目录
1,初识爬虫
1.1,网络爬虫概述
网络爬虫是一种互联网机器人,它通过爬取互联网上网站的内容来工作。它是用计算机语言编写的程序或脚本,用于自动从Internet上获取任何信息或数据。机器人扫描并抓取每个所需页面上的某些信息,直到处理完所有能正常打开的页面。(至于我为啥想学,当然为了“白嫖”。它每天都会在海量的互联网信息中进行爬取,收集并整理互联网上的网页,图片视频等信息。---浅浅的说一句,自个想看啥都没有限制了qwq)
1.2,爬虫的分类
网络爬虫按照实现的技术和结构可以分为通用网络爬虫、聚焦网络爬虫、增量式网络爬虫。(具体信息可以百度)
1.3,网络爬虫的基本原理
一个通用网络爬虫的基本工作流程
其中的URL地址说白了就是我们查找网站的网址,但是每个网页都会对应一个网址
✅(1)获取初始URL,该URL地址是用户自己制定的初始爬取的网页。
✅(2)爬取对应URL地址的网页时,获取新的URL地址。
✅(3)将新的URL地址放入URL队列。
✅(4)从URL队列中读取新的URL,然后依据新的URL爬取网页,同时从新的网页获取新的URL地址,重复上述的爬取过程。
✅(5)设置停止条件 ,如果没有设置停止条件,那爬虫会一直爬取下去,直到无法获取新的URL地址为止,设置停止条件后,爬虫将会在满足停止条件时停止爬取。
1.4,搭建开发环境
安装Anaconda(下载—官网)
安装PyCharm(官网下载)
2,了解web前端
2.1,HTTP基本原理
2.1.1HTTP协议
当用户在浏览器中输入网址(http://www.baidu.com)访问百度网址时,用户的浏览器被称为客户端,而百度的网站被称为服务器。这个过程实质上就是客户端向服务器 发送请求Request,服务器接收请求后,将处理后的信息(也称响应)传给客户端,这个过程就是通过HTTP协议实现的。
超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII形式给出;而消息内容则具有一个类似MIME的格式
HTTP是利用TCP在Web服务器和客户端之间传输信息的协议。客户端使用Web浏览器发送HTTP请求给Web服务器,Web服务器发送被请求的信息给客户端。
2.1.2,Web服务器的工作原理
(1)建立连接:客户端通过TCP/IP协议建立到服务器的TCP连接。
(2)请求过程:客户端向服务器发送HTTP协议请求包,请求服务器里的资源文档。
(3)应答过程:服务器向客户端发送HTTP协议应答包,如果请求的资源包包含动态语言的内容,那么服务器会调用动态语言的解释引擎负责处理“动态内容”,并将处理后得到的数据返回给客户端。由客户解释HTML文档,在客户端屏幕上渲染图形结果。
(4)关闭连接:客户端与服务器断开。
2.1.3,客户端向服务器端发起请求时,常用的请求方法:
HTTP协议的常用请求方法
GET:请求指定页面信息,并返回实体主体
POST:向指定资源提交数据进行处理请求(例如,提交表单或上传文件)。数据被包含在请求实体中。POST请求可能会导致新资源的建立和/或已有资源的修改
HEAD:类似于GET请求,只不过返回的响应中没有具体内容,用于获取报头
PUT:从客户端向服务器传送的数据取代指定的文档内容
DELETE:请求服务器删除指定的页面
OPTIONS:允许客户端查看服务器的性能
2.1.4,HTTP状态码含义
✅1**:信息,请求收到继续处理
✅2**:成功,请求成功被接收,理解和采纳
✅3**:重定向,为了完成请求,必须进要不执行的动作
✅4**:客户端错误,请求包含语法错误或者请求无法实现
✅5**:服务器错误,服务器不能实现一种无效的请求
例如,状态码为200,表示请求成功已完成;
状态码为404,表示服务器找不到给定资源。
通常有些网址被查封也会出现如下情况!
2.1.3,浏览器中的请求和响应
用浏览器访问qq邮箱,下面是请求和响应的流程:
按Enter键进入QQ邮箱登入页面。
(2)按F12建(或者鼠标右击,选择‘检查’选项),审查页面元素,运行效果图如下
会进入 ‘开发者模式’ 如上。
然后单击调试工具的Network选项,按F5(或者手动刷新QQ邮箱的登入网页),然后找到与QQ邮箱网址一样的文本栏。
2.2,HTML语言
2.2.1,什么是HTML
HTML是英文缩写,全称是HyperText Markup Language,中文名称是超文本标记语言或者超文本置标语言。HTML是为了实现在浏览器创建并浏览信息的网页语言的一种置标语言。HTML使得信心可以结构化,包括标题,段落,列表等等信息,除此以外还可以用于描述网页内的文档的外观和语义。HTML是由标准通用标记语言发展而来,创始人是蒂姆·伯纳斯-李,应用维护场所是万维网联盟。
2.2.2,HTML文件结构
<head>...</head>中没有完全展开,里面有文标题和内容,而<head>(头标签)和</head>(尾标签)是HTML文件的头部分,同理<body>和</body>是HTML文件的主体部分。
文件标题标签<title>
元信息标签<meta>
网页的主体部分以<body>标记标志着它的开始,以</body>标志着它的结束。在网页的主体标签中有很多属性设置:
✅text:设定页面的颜色;
✅bgcolor:设定页面背景的颜色;
✅background:设定页面的背景图像;
✅bgproperties:设定页面的背景图像为固定,不随页面的滚动而滚动
✅link:设定页面的默认链接颜色
✅alink:设定鼠标正在单击时的链接颜色
✅vlink:设定访问过后的链接颜色
✅topmargin:设定页面的上边距
✅leftmargin:设定页面的左边距
2.3,CCS层叠样式表
2.3.1,CCS概述
CCS层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。
CSS 能够对网页中元素位置的排版进行像素级精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力。
2.3.2,属性选择器
属性选择器:网址
2.3.3,类和ID选择器
在一个网页中标签的class属性可以定义 多个,而id属性只能定义一个,比如一个页面中只能有一个标签的ID属性值为intro。
想深入了解请百度
2.4,JavaScript动态脚本语言
通常我们所说的前端:HTML、CSS和JavaScript这三项技术
✅HTML:定义网页的内容。
✅CSS:描述网页的样式。
✅JavaScript:描述网页的行为。
defer属性:此属性表示当HTML文档加载完毕再执行脚本语言
<script>标签可以放在Web页面的<head></head>标签中,也可以放在<body></body>标签中。