爬虫(1)
1.爬虫基础知识
1.1 爬虫的分类
通用爬虫:搜索引擎的一部分,将互联网的网页下载到本地形成镜像
聚焦爬虫:面向特定的需求,在网络抓取的时候对内容已经进行了筛选
1.1.1 搜索引擎工作原理
1.1.1.1抓取网页 搜索引擎网络爬虫
1、首先选取一部分的种子url,将这些url放入到等待抓取的url队列中
2、取出待抓取的url地址,解析主机的ip,将url对应的网页下载下来,存储进已经下载的网页库中,并且将这些已经完成url地址抓取的url放入到已经抓取的url队列中
3、分析已经抓取的url队列中的url,分析其中的其他的url,将这些没有提取的url继续放入待抓取url队列中,从而进入下一循环
1.1.1.2 数据存储
搜索引擎通过爬虫爬取的网页,将数据存储进页面数据库,其中的页面数据与用户浏览器得到的html页面是完全一致的
一般情况下,搜索引擎在进行网页抓取的时候,也会做重复内容检测,如果遇到大量抄袭或者复制的内容,就不再爬取
1.1.1.3 预处理
搜索引擎将爬虫爬取的内容会进行各种预处理
提取文字
中文分词
消除噪音
索引处理
链接关闭计算
特殊文件处理
…
注意:无法处理图片、视频、flash等非文字内容,也不能执行脚本或程序
1.1.1.4 提供检索服务,网站排名
搜索引擎在对信息进行组织和处理之后,会为用户提供关键字检索服务,将用户检索的信息展示,同时会根据pagerank(链接访问量)进行网站排名。
1.2 通信过程
1、浏览器会通过DNS服务器查找域名对应的ip地址
2、向ip地址对应的web服务器发送请求
3、web服务器会根据请求进行响应,发送你需要的数据回浏览器
4、浏览器接收服务器发送过来的数据或者网页,进行渲染,展示在页面中
1.3 关于路径
URL:统一资源定位符
https://tieba.baidu.com/f?kw=%E7%BE%8E%E9%A3%9F
协议(http https ftp)://服务器的域名或者ip地址[端口]/访问资源的路径?查询字符串(键值结构)#锚点
http:超文本传输协议,是一种发布和接收html页面的方法,端口80
https:相当于http的安全版本,在http加入SSL层,端口443
SSL(安全套接层),在传输层对网络进行加密,保障数据传输的安全性
1.4 关于请求方法
根据http标准
http 0.9版本只支持get
http 1.0支持get post head
http 1.1在1.0的基础上更新options put delete trace connect
get:请求指定的页面信息,并返回数据
post:向指定的资源请求提交数据
head:类似get,返回的响应中没有具体的内容,用于报头的获取
options:允许客户端查看服务器性能
put:从客户端向服务端传递的数据取代指定的文档内容,即更新操作
delete:请求服务器删除指定的页面
trace:用于测试或者诊断
connect:代理服务器
1.5 get和post的区别
1、get是从服务器获取信息。post向服务器提交数据并获取页面信息
2、get 会将测试全部显示在URL地址上,服务器根据请求URL地址的测试返回响应
post 请求测试在请求体中,小新的长度没有限制的,而且隐式的方式进行传送,向服务器提交量比较大的数据
1.6 常见的请求头
Connection:keep-alive
1.client发起一个包含Connection:keep-alive的请求(HTTP1.1 默认值)
2.在server接收请求之后,
server支持keep-alive,回复一个包含Connection:keep-alive的响应,不关闭连接
server不支持keep-alive,回复一个包含Connection:close,关闭连接
3.如果client收到包含Connection:keep-alive的响应,则同一个连接下发送下一个请求,直到一方主动关闭连接
Accept:
text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q-0.g
指浏览器或者其他的客户端可以接收的mime(多用途互联网邮件扩展),即文件类型,服务器可以根据它判断并返回适当的文件格式
text/html 希望接收的是html文本
application/xhtml+xml XHTML和xml文档
q 指权重,在0-1之间
Accept-Language :指定客户端可接受的语言类型
Accept-Encoding :指定客户端可接受的内容编码
Referer:此内容用来标识这个请求是从哪个页面发过来的,服务器可以拿到这一 信息并做相 应的处理,如做来源统计、防盗链处理等。
Host :用于指定请求资源的主机 IP 和端口号,其内容为请求 URL 的原始服务器或网关的位置。从 HTTP 1.1版本开始,请求必须包含此内容。
User-Agent :简称UA,它是一个特殊的字符串头,可以使服务器识别客户使用的操作系统及版本、浏览器及版本等信息。在做爬虫时加上此信息,可以伪装为浏览器;如果不加,很可能会被识别州为爬虫。
Cookie:这是网站为了辨别用户进行会话跟踪而存储在用户本地的数据。它的主要功能是维持当前访问会话。例如,我们输入用户名和密码成功登录某个网站后,服务器会用会话保存登录状态信息,后面我们每次刷新或请求该站点的其他页面时,会发现都是登录状态,这就是 Cookies的功劳。
1.7 状态码
100-199 表示服务器成功的接收部分请求,要求客户端继续提交其余的请求才能完成整个处理过程
200-299 表示的是服务器成功的接收请求并且完成整个处理过程
300-399 为了完成请求,客户需要进一步细化请求 304使用缓存资源
400-499 表示客户端的请求有问题 404 not found 403 服务拒绝,没有权限
500-599 服务器出现错误 500
推荐阅读
-
pyqt5讲解1:窗口,QLabel,QLineEdit,QTextEdit
-
python爬虫微博爬取以及分析
-
深入SELECT语句的查询功能(二)(1)
-
SQLServer2008SP1安装报Restart computer failed的解决办法
-
Codeforces Round #225 (Div. 1) C 树状数组 || 线段树_html/css_WEB-ITnose
-
MySQL数据库接口的VC实现与应用(1)[图]_MySQL
-
PHP贪婪算法解决0-1背包问题实例分析,0-1实例分析
-
PHPUnit从零开始(1):从它的安装配置说起
-
python爬虫分布式获取数据的实例方法
-
Oracle BUG:ORA-00600[kmgs_parameter_update_timeout_1][17510]