当前位置: 首页 > news >正文

第十四天-网络爬虫基础

目录

1.什么是爬虫

2.网络协议

OSI七层参考模型

TCP/IP模型

1.应用层

2.传输层

3.网络层

3.HTTP协议

1.介绍

2.http版本:

3.请求格式

4.请求方法

5.HTTP响应

状态码:

6.http如何连接

4.Python requests模块

 1.安装

2.使用get/post

3.响应response

4.发送自定义请求头

5.请求超时

6.设置cookies

7.设置代理

8.ssl证书效验

9.异常

10.demo


1.什么是爬虫

1.爬虫(又被称为网页蜘蛛,网络机器人),是按照一定规则,自动的抓取万维网中的程序或者脚本,是搜索引擎的重要组成;比如:百度、

2.爬虫应用:1.搜索引擎,2.数据分析,3.人工智能,4.薅羊毛(抢车票)

3.常见爬虫产品:神箭手、八爪鱼、造数、后裔采集器

4.什么事是爬虫工程师:我们不生成数据我们是数据的搬运工

5.爬虫工程师的基础

        1.python编程基础

        2.linux系统操作

        3.http协议

        4.数据库的增删改查

2.网络协议

1. 协议可以理解为“规则”,是数据传输和数据的解释和规则

OSI七层参考模型

TCP/IP模型

1. 1974年诞生,5层协议

1.应用层

基于tcp和udp

1.http:超文本传输协议,基于tcp,使用80端口号,适用于从www服务器传输超文本到本地浏览器的传输协议

2.SMTP:用于简单的邮件传输协议,基于tcp,使用25端口号,是一组2用于由源地址到目的地传送邮件的规则,用来控制信件的发送,中转。

3.FTP:文件传送协议,基于tcp,一般上传下载用FTP服务,数据端口20,控制端口21

4.telnet:远程登录协议,基于tcp,使用23端口,是internet远程登录服务的标准协议和主要方式。为用户提供了本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序链接到服务器。使用明码传送,保密性差,简单方便。

5.dns:域名解析,基于UDP,使用53端口,提供域名到ip之间的转换

6.SSH:安全外壳协议,基于tcp,使用端口22,为建立在应用层和传输层基础上的安全协议,SSH是目前比较可靠,专门为远程登录会话和其他网络服务提供安全性的协议

2.传输层

1. TCP: 传输控制协议,一种面向链接的可靠的,基于字节流的传输层通信协议。

2.UDP:用户数据报协议,一种无链接的通信协议,不可靠,基于报文的传输层通信协议;

3.SCTP: 流量传输控制协议,一种面向连接的流传输协议,是tcp的升级改善tcp的不足

4.MPTCP:多路径传输协议。

3.网络层

1. IP:Internet协议。通过路由选择将下一条ip封装后交给接口层。ip数据报是无连接服务。

2. ICMP:Internet控制报文协议,是网络层的补充。用于在P主机、路由器之间传递控制消息,检测网络通不通,主机是否可达,路由是否可用等网络本身的消息;如:ping ip地址 就是使用本协议

3.ARP: 地址解析协议,是通过目标设备的ip地址,查询目标设备的mac地址,以保证通信的顺利进行;

4.RARP:反向地址解析协议。

3.HTTP协议

1.介绍

HTTP(HyperText Transfer Protocol,超文本传输协议)是互联网上应用最广泛的一种网络协议,他基于TCP的应用层协议,客户端和服务端进行通信的一种规则,他的模式非常简单,就是客户端发起请求,服务器响应请求;

2.http版本:

目前使用最多的是HTTP/1.1

3.请求格式

4.请求方法

5.HTTP响应

  

状态码:

6.http如何连接

1.dns域名解析

2. 建立链接-tcp三次握手

3.发送http请求

如:post、get请求等

4.断开连接-tcp四次挥手

4.Python requests模块

1. request是一个简单的python HTTP库

2.英文文档:Requests: HTTP for Humans™ — Requests 2.31.0 documentation

 1.安装

pip install requests

import requests

2.使用get/post

1. get:

response=requests.get(url="网址")

#构造get 参数 #返回 网址?key=value

data={"key":"value"}

response=requests.get(url="网址",params=data)

print(response.url)

2.post

data={}

response=request.post("网址",data=data)

3.响应response

1. 获取访问头

response.headers

2.获取返回体

response.text

3.获取json

response.json()

4.获取字节码:content

与text两者区别在于,content中间存的是字节码,而text中存的是Beautifulsoup根据猜测的编码方式将content内容编码成字符串

response.content

5.响应状态码:status_code

1. 200:为成功

response.status_code

6.获取请求头

response.request.headers

7.查看cookies

cookies=response.cookies

cookies["获取值"]

4.发送自定义请求头

header={}

resposne.get(url="",headers=header)

5.请求超时

#timeout 默认单位:秒

resposne.get(url="",timeout=0.001)

6.设置cookies

#使用字典构建cookies

cookies=dict(key=value)

response=requests.get(url="网址",cookies=cookies)

7.设置代理

1. 解决封禁ip问题

2.伪装真实IP地址,隐藏请求

3.代理免费的不好用,一般推荐付费代理iP;大家自行寻找

4.ip池和隧道代理的区别

 5.使用:

proxy={

        "http":"代理地址",

        "https":"代理地址"

}

response=requests.get(url="",proxies=proxy)

8.ssl证书效验

1. Requests可以为https请求验证ssl证书,就像web浏览器一样

2.参数verify:默认开启True, ,如ssl验证不通过则会报错

response=requests.get(url="",verify=True)

9.异常

10.demo

1. 下载图片

#下载图片
response_img=requests.get("https://p.qqan.com/up/2024-2/17091001248368361.jpg")
with open("17091001248368361.jpg","wb")  as f:f.write(response_img.content)

2.保存登录凭证

使用requests.session() 自动化记录登录信息

#定义session()

session=requests.session()

#登录

login_response=session.post("登录接口",data=data)

#访问

data_response=session.post("业务页面",data=data)

相关文章:

第十四天-网络爬虫基础

目录 1.什么是爬虫 2.网络协议 OSI七层参考模型 TCP/IP模型 1.应用层 2.传输层 3.网络层 3.HTTP协议 1.介绍 2.http版本: 3.请求格式 4.请求方法 5.HTTP响应 状态码: 6.http如何连接 4.Python requests模块 1.安装 2.使用get/post 3.响…...

Linux系统安装

Linux系统安装 安装包链接 链接:https://pan.baidu.com/s/1FdP7TH90UvKUQuiL2yeGCA 提取码:c49n安装包内容 虚拟机执行文件 详细安装教程 虚拟机密钥 Ubuntu 安装步骤 先点击虚拟机的.EXE文件安装,打开安装教程,有详细的说明。...

springboot-基础-thymeleaf配置+YAML语法

备份笔记。所有代码都是2019年测试通过的,如有问题请自行搜索解决! 目录 配置thymeleafthymeleaf举例参数设置yaml基础知识YAML语法报错:Expecting a Mapping node but got 其他语法 spring boot不推荐使用jsp。thymeleaf是一个XML/XHTML/HTM…...

深入理解分库、分表、分库分表

前言 分库分表,是企业里面比较常见的针对高并发、数据量大的场景下的一种技术优化方案,所谓"分库分表",根本就不是一件事儿,而是三件事儿,他们要解决的问题也都不一样,这三个事儿分别是"只…...

Oracle中序列

1. Sequence 定义 在Oracle中可以用SEQUENCE生成自增字段。Sequence序列是Oracle中用于生成数字序列的对象,可以创建一个唯一的数字作为主键。 2. 为什么要用 Sequence 你可能有疑问为什么要使用序列? 不能使用一个存储主键的表并每次递增吗&#xf…...

蓝牙耳机和笔记本电脑配对连接上了,播放设备里没有显示蓝牙耳机这个设备,选不了输出设备

环境: WIN10 杂牌蓝牙耳机6s 问题描述: 蓝牙耳机和笔记本电脑配对连接上了,播放设备里没有显示蓝牙耳机这个设备,选不了输出设备 解决方案: 1.打开设备和打印机,找到这个设备 2.选中这个设备&#…...

Cadence Allegro PCB设计88问解析(三十四) 之 Allegro 中 DDR等长处理

一个学习信号完整性仿真的layout工程师 在进行PCB设计时 ,会遇到一些单端的信号要做等长处理,比如DDR的数据线,交换机之间的数据线之类的。这时需要我们建立match group,来做等长。下面简单介绍在Allegro中怎么做等长:…...

向爬虫而生---Redis 探究篇2<redis集群(1)>

前言: 经常会遇到这样的事,redis运行一段时间以后,就会出现迟钝和卡壳! 这时候,说明已经到了瓶颈期了,需要用到redis集群了! 那么,弄明白集群的几个概念是必要的,我用案例来讲,,, 正文: 当需要处理大量数据或提供高可用性和性能时,Redis集群是一种常见的解决方案。…...

[云原生] 二进制安装K8S(上)搭建单机matser、etcd集群和node节点

一、单机matser预部署设计 目前Kubernetes最新版本是v1.25,但大部分公司一般不会使用最新版本。 目前公司使用比较多的:老版本是v1.15,因为v1.16改变了很多API接口版本,国内目前使用比较多的是v1.18、v1.20。 组件部署&#xff…...

乘积尾零(蓝桥杯)

文章目录 乘积尾零题目描述代码 乘积尾零 题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 如下的 10 行数据,每行有 10 个整数,请你求出它们的乘积的末尾有多少个零? 5650 454…...

项目解决方案: 实时视频拼接方案介绍

目 录 1、实时视频拼接概述 2、适用场景 3、系统介绍 3.1拼接形式 3.1.1横向拼接 3.1.2纵向拼接 3.2前端选择 3.2.1前端类型 3.2.2推荐配置 3.3后端选择 3.3.1录像回放 3.3.2客户端展示 4、拼接方案介绍 4.1基于4K摄像机的拼接方案 4.1.1系统架构…...

雾锁王国Enshrouded服务器CPU内存配置怎么选择?

雾锁王国/Enshrouded服务器CPU内存配置如何选择?阿里云服务器网aliyunfuwuqi.com建议选择8核32G配置,支持4人玩家畅玩,自带10M公网带宽,1个月90元,3个月271元,幻兽帕鲁服务器申请页面 https://t.aliyun.com…...

yolov9,使用自定义的数据训练推理

[源码 🐋]( GitHub - WongKinYiu/yolov9: Implementation of paper - YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information) [论文 📘](arxiv.org/pdf/2402.13616.pdf) 论文摘要:本文介绍了一种新的目标检测…...

企业文件图纸加密有哪些?图纸文件加密防泄密软件如何选?

在现在的市场发展中,对于企业的图纸文件安全问题越来越重视,如设计图纸,重要文件等,一旦泄漏就会给企业造成巨大的经济损失。所以对企业管理者来讲,如何才能选择一款好用的适合本企业的图纸文件加密软件是非常重要的&a…...

phpldapadmin This base cannot be created with PLA

phpldapadmin This base cannot be created with PLA 1、问题描述2、问题分析3、解决方法:创建根节点 1、问题描述 安装phpldapadmin参考链接: https://blog.csdn.net/OceanWaves1993/article/details/136048686?spm1001.2014.3001.5501 刚安装完成phpldapadmin&…...

如何开发自己的npm包并上传到npm官网可以下载

目录 搭建文件结构 开始编写 发布到npm 如何下载我们发布的npm包 搭建文件结构 先创建新文件夹,按照下面的样子布局 .├── README.md //说明文档 ├── index.js //主入口 ├── lib //功能文件 └── tests //测试用例 然后再此根目录下初始化package包 npm init…...

Linux Shell脚本练习(一)

一、 Linux下执行Shell脚本的方式: 1、用shell程序执行脚本: a、根据你的shell脚本的类型,选择shell程序,常用的有sh,bash,tcsh等 b、程序的第一行#!/bin/bash里面指明了shell类型的,比如#!/…...

面试数据库篇(mysql)- 11主从同步

原理 MySQL主从复制的核心就是二进制日志 二进制日志(BINLOG)记录了所有的 DDL(数据定义语言)语句和 DML(数据操纵语言)语句,但不包括数据查询(SELECT、SHOW)语句。 复…...

Python中的os库

一.OS库简介 OS是Operating System的简写,即操作系统。 OS库是一个操作系统接口模块,提供一些方便使用操作系统相关功能的函数。 二.OS库常用函数 2.1文件和目录 2.1.1:os.getcwd() 作用:返回当前工作目录,结果是…...

C++ | 使用正则表达式匹配特定形式的字符串

C | 使用正则表达式匹配特定形式的字符串 在 C 中&#xff0c;可以使用 <regex> 头文件提供的正则表达式库来对特定形式的字符串进行匹配操作。 常用的正则表达式模式语法 普通字符&#xff1a; 普通字符会按照其字面意义进行匹配&#xff0c;例如 a 会匹配字符 a。 转…...

避开VisionPro TCP通讯的那些坑:从配置到代码的完整避坑指南

VisionPro TCP通讯实战避坑指南&#xff1a;从配置陷阱到代码优化的全链路解决方案 第一次尝试将VisionPro的检测数据通过TCP/IP传输到外部程序时&#xff0c;我踩遍了所有能想到的坑——从莫名其妙的连接失败&#xff0c;到接收到的数据乱码&#xff0c;再到程序突然卡死。如果…...

YOLO免配置训练包+智能标注工具:支持YOLOv5/v8/v10/v11一键训练,含易语言调用示例

温馨提示&#xff1a;文末有联系方式免环境部署&#xff0c;真正开箱即用 无需安装Python、CUDA、PyTorch等复杂依赖&#xff0c;本YOLO训练套件已封装完整运行时环境&#xff0c;Windows系统双击即可启动&#xff0c;彻底解决环境冲突与配置报错问。全版本YOLO模型支持&#x…...

【2026奇点智能技术大会权威内参】:AI重构建议的5大底层逻辑与企业落地优先级清单

第一章&#xff1a;AI重构建议的范式跃迁与奇点共识 2026奇点智能技术大会(https://ml-summit.org) 传统推荐系统依赖显式反馈与协同过滤&#xff0c;而新一代AI建议引擎正以隐式意图建模、多模态对齐与反事实推理为基石&#xff0c;实现从“预测用户会点什么”到“协同定义用…...

科学图像分析难题破解:3个步骤让Fiji成为你的得力助手

科学图像分析难题破解&#xff1a;3个步骤让Fiji成为你的得力助手 【免费下载链接】fiji A "batteries-included" distribution of ImageJ :battery: 项目地址: https://gitcode.com/gh_mirrors/fi/fiji 你是否曾经面对显微镜下的大量细胞图像束手无策&#x…...

【限时解密】GitHub Copilot Enterprise未公开的3项性能开关:启用后P99延迟下降63%,仅限前500名开发者获取配置清单

第一章&#xff1a;智能代码生成性能优化技巧 2026奇点智能技术大会(https://ml-summit.org) 智能代码生成模型&#xff08;如基于LLM的Copilot类工具&#xff09;在实际工程落地中常面临响应延迟高、上下文吞吐低、生成结果不稳定等问题。优化其端到端性能需兼顾推理效率、缓…...

剪映专业版教程:制作画卷开合效果

前言 今天教大家一个画卷开合效果。这种效果模拟画卷从中间向上下两边展开&#xff0c;停留片刻后缓缓合拢&#xff0c;配合四季主题诗词和朗读&#xff0c;适合古风视频、诗词鉴赏、传统文化展示等场景。 效果预览&#xff1a;画卷从中间向上下翻开&#xff0c;露出四季风景…...

STM32点蜂鸣器

这是一个峰鸣器&#xff0c;GND接stm32的GND&#xff0c;VCC接3.3V&#xff0c;i/o接你设置的引脚代码如下void Bear_int(){GPIO_InitTypeDef Bear_initstruct;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);Bear_initstruct.GPIO_PinGPIO_Pin_3;Bear_initstruct.GPIO…...

实验间隙高效读文献?对比8款翻译工具后,我发现这款最适合理工科研究生

理工科研究生每天要读大量英文文献&#xff0c;但实验间隙时间碎片化&#xff0c;传统翻译工具要么术语翻译错误&#xff08;把"对照组"翻成"控制组"&#xff09;&#xff0c;要么图表公式全丢失&#xff0c;要么得不停切换原文和译文。结果&#xff1f;一…...

SonarQube中文插件离线安装全攻略:从下载到配置详解

1. 为什么需要离线安装SonarQube中文插件 很多开发团队在使用SonarQube进行代码质量分析时&#xff0c;都会遇到一个共同的需求&#xff1a;如何让这个强大的工具更好地支持中文。虽然SonarQube本身提供了多语言支持&#xff0c;但默认情况下并不包含完整的中文翻译。这时候&am…...

centos systemd 方式设置java开机自启、系统服务

前言 工作中&#xff0c;经常见到需要将java设置为开机自启&#xff0c;通常的思路是将java设置为服务&#xff0c;然后纳入systemd管理&#xff0c;然后开启开机自启&#xff1b;以下是实现步骤 编写java服务脚本 在/etc/systemd/system下新建 my_java.service&#xff0c;…...