【爬虫基础】第一部分 网络通讯-Socket套接字 P2/3
上节内容回顾:【爬虫基础】第一部分 网络通讯 P1/3-CSDN博客
相关文档,希望互相学习,共同进步
风123456789~-CSDN博客
前言
1.知识点碎片化:每个网站实现的技术相似但是有区别,要求我们根据不同的网站使用不同的应对手段。主要是常用的一些网站爬取技术。
2.学习难度:入门比web简单,但后期难度要比web难,在于爬虫工程师与网站开发及运维人员的对抗。比如你写了爬虫但是被网站运维人员发现后添加反爬,那么就要解决反爬。即平台更新换代,爬虫策略需要实时更新。
3.学习特点:以摸个网站爬虫为讲解对象,即一个技术点的案例。
4.后续发展:要求掌握的东西多,工作中根据工作需要涉及到更多没有接触的知识。
5.法律层面:爬虫相关工作属于灰色地带,目前国内现行法律对于爬虫相关评判还没有明确制度。
6.建议:好记性不如烂笔头,建议多找网站进行爬取联系,同时做好笔记。
4 socket 套接字编程
1.socket是什么
2.socket使用场景
3.TCP介绍
4.UDP介绍
4.1 什么是socket?
socket (简称 套接字) 是程序之间通信的一个工具。好比电话,知道对方号码即可通信。程序之间想要进行网络通信需要基于socket, socket 就是程序之间网络通讯的工具。
Socket(套接字)是一种用于实现网络通信的编程接口(API),它提供了一种标准化的方式,使得不同操作系统和编程语言之间的应用程序能够相互通信。Socket提供了一种可移植、可扩展、易于使用的接口,使得应用程序能够在不同的操作系统和计算机之间进行通信。Socket提供了一种标准化的接口,使得这些进程能够在网络中进行数据交换和通信。
4.2 socket使用场景
Socket解决的问题:
1)进程间通信:在同一台计算机上,不同的进程之间需要进行通信,Socket提供了一种标准化的接口,使得进程之间可以通过网络进行通信。
2)跨平台通信:不同的计算机、操作系统和编程语言之间需要进行通信,Socket提供了一种可移植的接口,使得应用程序可以在不同的平台上运行并进行通信。
3)网络通信安全性:网络通信中存在着信息泄露、数据篡改、拒绝服务攻击等安全问题,Socket可以通过加密、身份认证、防火墙等方式提高通信的安全性。
4)通信协议:Socket提供了一种灵活的通信协议,可以根据需要选择不同的协议来满足特定的通信需求,如TCP、UDP等协议。
总之,Socket通信可以为应用程序提供一种标准化、可靠、安全的网络通信方式,使得不同计算机之间的应用程序可以进行数据交换、信息共享和远程控制等操作。
4.3 TCP介绍
(1)定义
传输控制协议(TCP,TransmissionControl Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。
TCP通信步骤:1)创建连接 2)传输连接 3)关闭连接
在通信传输之前,打开一个连接。连接被关闭时无法发送数据。TCP通信模型相当于打电话。TCP提供可靠的通信服务来传输字节流。TCP支持双向数据流,应用程序也可以仅单向发送数据。在主机之间,TCP使用端口号标识应用程序服务并且可以多路传输数据流。
(2)TCP的特点
1)面向连接
通信双方必须先建立好连接才能进行数据的传输,并且双方都会为连接分配必要的资源用来记录连接的状态、信息。当数据传输完成后,双方必须断开连接,以释放资源。
反爬:添加ip代理。
2)可靠性
采用发送应答机制。每个报文必须得到接收方应答才认为这个TCP报文段传送成功。
超时重传。 发送端发送一个报文之后就会启动定时器,如果规定时间没有得到应答就会重新发送这个报文段。
错误校验。用一个校验和函数来校验数据是否有误,在发送和接收时都要计算校验和。
流量控制和阻塞管理。流量控制用来避免发送端发送过快使得接收方来不及接收。
知识总结:
TCP是一个稳定、可靠的传输协议,常用于对数据进行准确无误的传输,比如:文件下载、浏览器上网。
特点:1.面向连接
2可靠传输(发送应答机制、超时重传、错误校验、流量控制和阻塞管理)
4.4 UDP介绍
UDP协议全称:用户数据报协议,在网络中与TCP一样用于处理数据包,是一种无连接的协议。在OSI模型中,在第四层-传输层,处于IP协议的上一层。它的缺点:不提供数据包分组、组装和不能对数据包进行排序。由于不用建立连接,且没有超时重发机制,故而传输速度很快。
UDP是工作在OSI(开放系统互连,Open Systems Interconnection)模型中传输层的协议。它使用IP作为底层协议,是为应用程序提供一种以最少的协议机制向其他程序发送消息的协议。其主要特点是无连接,不保证可靠传输和面向报文。
4.5 UDP 和TCP 区别
IP协议一般指IP。 IP指国际互连协议,Internet Protocol 缩写,是TCP/IP 体系中的网络层协议。TCP/IP协议族提供两个协议:TCP 和UDP。两者区别:
1.TCP 面向连接,UDP 面向无连接
2.UDP 程序接口较简单
3.TCP 面向字节流,UDP面向数据报
4.TCP 保证数据正确性,UDP可能丢包
5.TCP 保证数据顺序,UDP 不保证
4.6 TCP/IP协议族 (TCP/IP四层模型、OSI七层模型)
(1)OSI七层模型:
(2)TCP/IP四层模型:
(3)OSI七层模型 && OSI参考模型 对应
最近文章阅读排行榜
【Linux专栏】find命令+同步 实验-CSDN博客
【爬虫基础】第一部分 网络通讯 P1/3-CSDN博客
【Oracle专栏】客户端expdp 实验验证-CSDN博客
【Oracle专栏】本地 expdp 导出远程库_oracle expdp 远程 导出-CSDN博客
【Linux &Oracle】安装Oracle 19c客户端_linuxoracle客户端-CSDN博客
【Linux & Oracle】杂货铺 日常实用2024-CSDN博客
【Oracle专栏】Package 被误替换,恢复找回-CSDN博客
【Linux运维】非root用户的单向免密登录_linux 单向免密-CSDN博客
【Oracle专栏】DBMS_CRYPTO 加密包、AES加解密_oracle aes解密-CSDN博客
【Oracle专栏】ORA-06502:hex到raw的转换错误-CSDN博客
【Oracle专栏】group by 和distinct 效率_group和distinct效率oracle-CSDN博客
【Oracle专栏】2个入参,生成唯一码处理_2个数据生成一个唯一的值-CSDN博客
【Oracle专栏】实用SQL、查询处理-CSDN博客
【Oracle实用】锁表SQL查询_oracle查看锁表的sql-CSDN博客
【Linux运维】服务器信息查询_linux 查询机器所有信息脚本-CSDN博客
【Linux实验】开发及编译JAVA程序、C程序_java系统在linux环境下的开发-CSDN博客
【CSDN博客】创作纪念日-CSDN博客