爬虫理论

什么是爬虫:

爬虫就是一段自动抓取互联网的程序和脚本

网页的三大特性:

1、任何网页都有自己的唯一的URL地址(统一资源定位符)
2、网页都是通过HTML(超文本)来展示数据的
3、网页都是通过HTTP/HTTPS(超文本传输协议)来传输HTML的

爬虫的基本使用步骤:

1、寻找目标的URL(统一资源定位器),然后发起请求
2、获取响应结果,之后分析结果
3、从响应结果中提取我们所需要的数据
(1)、从网页中提取目标数据
(2)、如果还有新的url地址,则提取,继续发起请求
4、所有的目标url都请求完毕后,爬虫结束

数据用途:

1、爬取数据后自己写个网站
2、日常数据分析

爬虫的分类:(通用爬虫、聚焦爬虫)

通用爬虫:

是搜索引擎的重要组成部分

作用:

通过分词,去噪等进行颈处理,处理后进行数据的持久化,然后提取搜索

目的:

尽可能完全的将互联网上所有的网页下载到本地

聚焦爬虫:

是面向主题,面向需求的爬虫,只获取需求相关的数据

搜索引擎的缺点:

1、只能够获取简单的文件数据,大型的二进制数据(音频,视频)
2、搜索引擎搜索的结果都千篇一律,无法根据需求获取特定的数据
3、99%的结果都是属于无用的垃圾数据

OSI的七层协议的目的:

实现不同的系统互联之间的数据通讯,实现数据的传输

七层协议:

应用层,表示层,会话层,传输层,网络层,数据链路层,物理层
应用层:http/htttps

  • http(端口号为 80):从网络传输超文本数据到本地浏览器的传输协议
  • https(端口号为 443):是HTTP的升级安全版,在HTTP的基础上添加了一个SSL层,用于安全传输

传输层:TCP/UDP

  • TCP:网络传输协议,面向连接的,长连接,传输的是数据流,确保数据的安全性和完整性,但传输的效率非常的低
  • UDP:网络传输协议,是非面向连接的,短链接,传输的是数据包,传输数据是不安全的,可能会造成数据的缺失,传输的速度非常快

URL的介绍

URL的组成:

  • scheme:指的是协议(http/https)
  • host:指的是服务器的IP后域名
  • port:值得是端口号
  • path:指的是资源路径
  • query_string:URL地址后面的查询参数
  • anchor(锚mao点) :定位,可以跳到制定的位置

URN:统一资源名称
URI:统一资源标志符
URL:统一资源定位符

URI是URN和URL的父类

常见的5种请求方式

GET:只适用于服务器获取请求,在URL连接后面可能会跟一些查询参数
POST:向服务器端提交数据,数据会放在请求体中,一般用于添加或修改数据
DELETE:一般用来删除数据
PUT:更新整个资源(用来数据更新)
PATCH:局部的数据更新

GETPOST的请求区别

  • 使用场景:GET是从服务器端提取数据,而POST是请求向服务器提交数据的
  • 安全性:GET请求参数只能拼接在URL地址上,POST请求会在请求体中
  • GET请求的URL是由长度限制的,而POST的请求可以添加很多字段

常见的请求头参数

User-Agent:这是设置浏览器(设置这个参数模拟浏览器请求对方服务器)
Cookie:保存在客户端中,保存的是用户信息
Referer:告诉客户端服务器当前的请求书从哪个界面跳转过来的
Accept:可以接受的数据类型

CookieSession:目的都是保持会话

  • HTTP:请求是无状态的,每次请求断开后,在请求都是一个新的请求,请求状态会使用到Cookie和Session
  • Cookie:保存在客户端,记录信息确认用户身份
  • Session:保存在服务端,记录信息确认用户身份

常见的请求状态码:

2XX:请求成功
3XX:重定向

  • 301:永久重定向
  • 302:临时重定向
    4XX:客户端请求错误
  • 400:请求错误,服务器无法解析
  • 401:未授权,没有身份验证
  • 403:服务器拒绝访问
  • 404:访问页面不存在,资源路径错误
  • 405:请求方式不允许
  • 408:请求超时
    5XX:服务器错误
  • 501:服务器内部错误
  • 502:服务器暂时不具备完成请求的功能
  • 503:服务器不可用

关于urllib中request,error,parse模块的使用

request:是基本的HTTP请求模块,可以用来模拟发送请求,就像在浏览器中输入完网址,后敲回车一样,使用时只需要给库方法传入相关的URL和相关的参数就可以了
error:异常处理模块,如果请求错误,可以使用这个模块来捕获异常,然后重试后其他操作,保证陈旭不会意外终止
parse:是一个工具模块,提供了很多的URL的处理方法,如拆分,解析,合并等

正则的使用及说明:

应为我们down下来的数据全是网页,数据太大而且还很混乱,大多数都是无用的数据,所以我们需要过滤和匹配出我们所需要的数据

  • 正则表达式:别名正规表达式,正规表达法,规则表达式,常规表达法,正规表达式使用单个字符来描述、匹配一系列某个句法规则的字符串

目的:
1.给定的字符串判断是否符合正则表达式的逻辑过滤
2.可以通过正则表达式,从字符串中捕捉或获取我们所需要的特定部分

正则表达式语法支持情况

DeepinScrot-1057

正则表达式匹配的规则如下:

8f0aa323-3824-4b95-b4e0-4ab337c7ab85

将正则表达式编译使用符号

修饰符号 描述
re.I 使用匹配对大小写不敏感(不区分大小写)
re.S 使.匹配包括换行符在内的所有字符
re.M 多行匹配
re.L 做本地化识别

常用方法主要有:

  • match 方法:从起始位置开始查找,一次匹配
  • search 方法:从任何位置开始查找,一次匹配
  • findall 方法:全部匹配,返回列表
  • finditer 方法:全部匹配,返回迭代器
  • split 方法:分割字符串,返回列表
  • sub 方法:替换
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • HTTP基本原理 URI、URL、URN(Uninform Resource) URI(Identifier):统...
    GHope阅读 6,447评论 2 26
  • 前言:最近发现自己在网络相关这一块基础很是欠缺,所以准备花时间了解一下,本文主要是讲http协议的一些基础,和一些...
    justCode_阅读 6,256评论 0 23
  • 1. 爬虫概述     爬虫,又称为网络爬虫,主要指代从互联网上进行数据采集的脚本后端程序,是进行数据分析和数据挖...
    大千世界1998阅读 4,704评论 0 0
  • 过去的几个月,己经习惯了触目都是一片灰败萧肃,习惯了将视线锁在手机屏幕的方寸之间,遥想屏幕那边的人和千里之外的南国...
    我是银璃阅读 1,339评论 0 0
  • 我们从大到小见过很多人,听过很多故事 城市的夜晚,小镇的黄昏,学校的清晨 起起伏伏的歌韵里藏着许多动人的传奇 每当...
    陈恩君阅读 3,567评论 0 1