爬虫基础(更适合于新手的爬虫认知)

阅读指导:
本文章含改了爬虫的基础内容,讲解了HTTP组成原理,爬虫的基本流程,Session与Cookie,线程与进程四个内容。

1. HTTP组成原理

1.1 URL,URN,URI

三者定义:

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

三者关系:
       URN与URL是URI的子集,在现行市场下,URN使用的非常少,几乎所有的URI都是URL,所以在不严谨的情况下,可以说URI就是URL。

1.2 URL的格式:

scheme://[uesrname:password@]hostname[:poort][/path][;parameters][?query][#fragment]

即:协议;//[用户名和密码]主机地址(域名或IP地址)[端口][路径][制定访问某个资源时的附加信息][查询某类资源][对资源描述的部分补充]

注:用 [] 的部分是非必要的部分

1.3 请求:

请求分为四个部分:请求方式,请求网址,请求头,请求体。

  • 请求方式:
    主要是get,post两种请求方式。
  • 请求网址:
    即请求的URL。
  • 请求头:
    向网页发送请求时,用来伪装等的内容,封装在headers中,一般含cookie,referer,User-Agent 等。
  • 请求体:
    用于post请求方式中,提交符合请求的表单数据(data)。

1.4 响应

响应分为三个部分:响应状态码,响应头,响应体。

  • 响应状态码:
    表示服务器的响应状态。常见的有200,404,500,403
  • 响应头:
    包含了服务器对请求的应答信息,如Content-Type,Sever,Set-Cookie。
  • 响应体:
    服务器响应的数据(爬虫需要解析的内容)

2. 爬虫的基本流程

a. 获取网页:发送请求,获取网页源代码,常使用requests,urllib库

b. 提取信息:对获取到的网页信息进行解析,提取需要的信息,常使用正则,Beautiful Soup,lxml,pyquery库完成

c. 保存数据:将提取到的信息,保存为TXT,JSON文本,数据库,HTML格式等

3. session与cookie

cookiesession
作用用于记住用户的信息,比如用户的登录状态、个性化设置等用于保存用户的状态信息,比如购物车内容、用户登录信息等
存储位置客户端服务器端
安全性相对较低,因为它们存储在用户的计算机上,可能会被篡改相对较高,因为数据存储在服务器端,不易被篡改
生命周期可以是临时的(会话Cookie),浏览器关闭即失效,也可以是长期的,有设定的过期时间通常在用户会话期间有效,用户关闭浏览器或Session超时后失效
数据传输每次HTTP请求都会携带Cookie信息,会增加数据传输量不会随着每个HTTP请求传输,通常只传输一个Session ID
如何工作服务器通过HTTP响应头将Cookie发送给客户端,客户端的浏览器将其存储,并在之后的每个请求中将其发送回服务器服务器为每个用户创建一个唯一的Session ID,并通过Cookie或其他方式(如URL重写)发送给客户端。客户端在后续的请求中携带这个Session ID,服务器根据这个ID来识别用户并获取其Session信息

4. 多线程与多进程的基本原理

4.1 线程与进程

  • 进程:是具有一定独立功能的程序在某个数据集合上的一次运动,是操作系统的进行运算调度的一个独立单元。
  • 线程:是操作系统的进行运算调度的最小单元,也就是进程中的最小运行单元。

简单来说进程是线程的集合

比如:打开一个浏览器,相当于就打开了一个浏览器进程,在浏览器上面播放视频,音乐,那么播放的视频和音乐就是这个浏览器进程上面的两个线程。

4.2 多线程与多进程

  • 多线程:一个进程上面运行多个线程
  • 多进程:一次性运行多个进程

多线程的使用场景:

       多线程往往运用于一个线程在进行时需要等待时,使用多线程就会提高效率,也是就运用在计算密集型任务时使用,比如爬虫,这时候,使用多线程就会快很多

4.3 并发与并行

  • 并发:多个线程对应的多条指令被快速轮换地执行,例如一个处理器,处理A后,再处理B,然后切回来再处理A,循环处理
  • 并行:同一时刻,多条指令在多个处理器上面执行
  • 22
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值