《0基础》学习Python——第十八讲__爬虫/<1>
一、什么是爬虫
爬虫是一种网络数据抓取的技术。通过编写程序(通常使用Python),爬虫可以自动化地访问网页,解析网页内容并提取出所需的数据。爬虫可以用于各种用途,如搜索引擎的索引,数据分析和挖掘,以及自动化任务的执行等。爬虫可以模拟人类用户的行为,例如点击链接、填写表单或提交请求,以获取所需的数据。
二、爬虫的基本流程
-
目标确定:确定需要爬取的网站或数据,并分析目标网站的结构和规则。
-
发起请求:使用HTTP协议发起请求,获取目标网页的内容。可以使用Python中的requests库、urllib库等发送GET或POST请求。
-
解析内容:对获取到的网页内容进行解析,提取出需要的数据。常用的解析库有BeautifulSoup、lxml等,可以根据网页的HTML结构进行定位和提取。
-
数据处理:对爬取到的数据进行清洗、整理和处理,例如去除空白字符、格式转换等。
-
存储数据:将处理后的数据保存到本地文件或数据库中,以备后续使用。可以使用Python中的文件操作、数据库操作等技术。
-
循环爬取:根据需要,可以设定爬虫程序的循环,持续爬取更多的数据。可以设置爬取频率、爬取深度等参数。
-
反爬处理:针对一些网站的反爬措施,可以通过设置请求头部、使用代理IP、UA伪装等方式来绕过限制或识别。
-
异常处理:对于网络请求或解析过程中出现的异常,需要进行相应的异常处理,例如设置重试机制、记录日志等。
三、基础知识
1、什么是URL
URL是统一资源定位符(Uniform Resource Locator)的缩写,它是互联网上标识资源的地址。URL指定了在互联网上的资源的位置和访问方式。通常,URL由多个组成部分组成,包括协议(例如HTTP或HTTPS)、主机名(例如www.example.com)、端口号(可选)、路径和查询参数等。通过URL,我们可以在浏览器中打开网页,访问网站和下载文件等。例如,"https://www.example.com/index.html"就是一个URL,指定了一个使用HTTPS协议,主机名为www.example.com,路径为/index.html的网页。
例如在浏览器打开一个网页,点击键盘F12即可查看网页源码

如上即可找到网页的URL
2、统一资源定位符 uniform resource locator:

1、http: 超文本传输协议 HyperText Transfer Protocol 默认端口 80
是一种用于在计算机网络中传输超媒体文档的应用层协议。它是一种客户端-服务器协议,客户端发起请求,服务器响应请求,并传输超文本(如HTML)和其他资源(如图像、音频、视频等)。HTTP使用TCP作为传输协议,通常使用端口号80。它基于请求-响应模型,客户端发送HTTP请求到服务器,服务器根据请求返回相应的HTTP响应。HTTP请求通常包括请求方法(如GET、POST等)、URL、请求头和请求体等信息,而HTTP响应包含响应状态码、响应头和响应体等信息。
2、https: 安全的超文本传输协议 security 默认端口 443
3、www.example.com 域名
用于标识和定位互联网上特定的计算机或网站的名称。它是由一串用点分隔的字符组成,例如“example.com”。域名主要作为人类可读的标识符,用于代替IP地址来访问网站。
在域名系统(Domain Name System,DNS)中,域名被映射到相应的IP地址。当用户在浏览器中输入一个域名时,浏览器会向DNS服务器发送请求,获取该域名对应的IP地址,然后使用该IP地址与网站建立连接,并获取网页内容。
域名通常由多个级别的标签组成,从右到左依次表示不同级别的名称。例如,在域名“www.example.com”中,com是顶级域名,example是二级域名,而www是子域。
4、80 端口 port
端口号(Port Number)是在计算机网络中用于标识特定服务或应用程序的数字。它是一个16位的整数,范围从0到65535。端口号与IP地址组合在一起,用于唯一标识网络中的每个应用程序或服务。
5、/path/to/myfile.html 资源路径
6、?key1=value1&key2=value2 参数 & 表示多个参数的拼接
7、# 锚点
锚点(Anchor)是用于网页内部导航的一种技术。它是通常在HTML文档中添加的一个标记,用于将浏览器的视口定位到页面的特定位置。
当页面较长或包含大量内容时,使用锚点可以方便用户直接跳转到页面中感兴趣的部分,而无需手动滚动页面。锚点通常与超链接(<a>标签)结合使用,用户点击超链接时,浏览器会自动滚动到与锚点对应的位置。
四、前端代码
主要构成标签
<!DOCTYPE html> 声明为 HTML5 文档
<html>..</html> 是网页的根元素
<head>..</head> 元素包含了文档的元(meta)数据,如 <meta charset="utf-8"> 定义网页编码格式为 utf-8。
<title>..<title> 元素描述了文档的标题
<body>..</body> 表示用户可见的内容
<div>..</div> 表示框架
<p>..</p> 表示段落
<ul>..</ul> 定义无序列表
<ol>..</ol>定义有序列表
<li>..</li>表示列表项
<img src="" alt="">表示图片
<h1>..</h1>表示标题
<a href="">..</a>表示超链接
有如下前段代码
<!DOCTYPE html>
<html><head><!-- 内嵌样式 --><style type="text/css">body{background-color:yellow;}p{font-size: 30px;color: springgreen;}</style><meta charset="utf-8"><title>兰智数加学院</title></head><body><a href="www.anhuisjxy.com">点击访问</a><h1>兰智数加www.anhuisjxy.com</h1><h2>Python爬虫</h2><div><p>认识网页结构</p><ul><li>HTML</li><li>CSS</li></ul></div></body>
</html>
<!DOCTYPE html>:声明文档类型为HTML。<html>:HTML文档的根元素。<head>:文档的头部,用于定义文档的元数据和引入外部资源。<style>:内嵌样式,用于定义页面的样式。<meta charset="utf-8">:字符编码设置为UTF-8,以支持显示中文字符。<title>:定义页面的标题。
<body>:文档的主体部分,包含了页面的实际内容。<a href="www.anhuisjxy.com">点击访问</a>:超链接标签,点击时会打开链接目标为"www.anhuisjxy.com"的页面。<h1>:级别最高的标题标签,显示文本"兰智数加www.anhuisjxy.com"。<h2>:次级标题标签,显示文本"Python爬虫"。<div>:分割页面的容器。<p>:段落标签,显示文本"认识网页结构"。<ul>:无序列表标签。<li>:列表项标签,显示文本"HTML"和"CSS"。
五、爬虫安装request
1、安装request包
计算机长按win+R,输入cmd,将以下代码输入进去即可
pip install requests
2、pip 永久更换信号源,pip安装模块速度太慢可以更换镜像源使用国内别人下载好的资源
pip config set global.index-url https://pypi.mirrors.ustc.edu.cn/simple/
pip config set install.trusted-host pypi.mirrors.ustc.edu.cn
六、get、post请求
-
GET请求:
用于从服务器获取数据,通过将参数附加到URL的末尾传递数据。在GET请求中,参数以键值对的形式出现在URL中,例如:http://example.com/path?param1=value1¶m2=value2。GET请求的特点包括:- GET请求可被浏览器缓存,可以被浏览器历史记录记录下来。
- GET请求可以被缓存,可以被收藏为书签。
- 参数有长度限制,一般不超过URL的最大长度限制(通常为2048个字符)。
- 数据通过URL传递,可见于URL地址栏。
-
POST请求:
- 用于向服务器提交数据,通过请求体传递数据。在POST请求中,参数以键值对的形式出现在请求体中,而不是URL中。POST请求的特点包括:
- POST请求不会被缓存,不会被浏览器历史记录记录。
- 参数没有长度限制,可以传递大量数据。
- 数据不会出现在URL中,对安全性要求较高。
- 用于向服务器提交数据,通过请求体传递数据。在POST请求中,参数以键值对的形式出现在请求体中,而不是URL中。POST请求的特点包括:
如下图查看URL、get请求\post请求,以及content-type,具体过程联系本文最上面一张图

content-type:
Content-Type字段由一个主类型(比如"text"、"image"、"application"等)和一个子类型(如"plain"、"html"、"json"等)组成,用斜杠分隔。常见的Content-Type类型包括:
- text/plain:纯文本
- text/html:HTML文档
- text/css:CSS样式表
- application/json:JSON数据
- application/x-www-form-urlencoded:表单数据
- multipart/form-data:通过表单上传文件
- image/jpeg:JPEG图片
- audio/mp3:MP3音频
- video/mp4:MP4视频
UA伪装
User-Agent:UA伪装是一种技术手段,用于欺骗服务器或网站,使其认为请求来自于不同的设备或浏览器。UA指的是用户代理,是HTTP请求头部中的一个字段,用于标识发送请求的客户端信息,包括设备类型、操作系统、浏览器等。
可以从下列图片查看:即将右侧滚轮拉到最底下,然后在最后一条就是User-Agent

相关文章:
《0基础》学习Python——第十八讲__爬虫/<1>
一、什么是爬虫 爬虫是一种网络数据抓取的技术。通过编写程序(通常使用Python),爬虫可以自动化地访问网页,解析网页内容并提取出所需的数据。爬虫可以用于各种用途,如搜索引擎的索引,数据分析和挖掘&#x…...
NFTScan 浏览器现已支持 .mint 域名搜索功能!
近日,NFT 数据基础设施 NFTScan 浏览器现已支持用户输入 .mint 域名进行 Mint Blockchain 网络钱包地址的搜索查询, NFTScan 用户能够轻松地使用域名追踪 NFT 交易,为 NFT 钱包地址相关的搜索查询功能增加透明度和便利性。 NFTScan explorer…...
Git基本原理讲解、常见命令、Git版本回退、Git抛弃本地分支拉取仓库最新分支
借此机会写篇博客汇总一下自己去公司实习之后遇到的一些常见关于Git的操作。 Git基本认识 Git把数据看作是对小型文件系统的一组快照,每次提交更新,或在Git中保存项目状态时,Git主要对当时的全部文件制作一个快照并保存这个快照的索引。同时…...
前端网页打开PC端本地的应用程序实现方案
最近开发有一个需求,网页端有个入口需要跳转三维大屏,而这个大屏是一个exe应用程序。产品需要点击这个入口,并打开这个应用程序。这个就类似于百度网盘网页跳转到PC端应用程序中。 这里我们采用添加自定义协议的方式打开该应用程序。一开始可…...
遇到not allow unquoted fieldName怎么办
前言 Exception in thread "main" com.alibaba.fastjson2.JSONException: not allow unquoted fieldName, offset 2, character , line 1, column 3, fastjson-version 2.0.25 { "data":null, "code":200, "msg":"成功"…...
IDEA安装并使用通义灵码
IDEA安装并使用通义灵码 通义灵码介绍安装通义灵码 通义灵码介绍 在数字革命的前沿,阿里云技术团队匠心独运,倾力打造“通义灵码”——一个融合尖端科技的智能编码助手,旨在革新软件工程的未来。 实时代码扩展 通义灵码具备深度理解代码脉络的…...
<数据集>AffectNet表情识别数据集<目标检测>
数据集格式:VOCYOLO格式 图片数量:29752张 标注数量(xml文件个数):29752 标注数量(txt文件个数):29752 标注类别数:7 标注类别名称:[anger,contempt,disgust,fear,happy,neutral,sad,surprise] 序号类…...
ThinkPHP对接易联云打印
引入composer包 composer require yly-openapi/yly-openapi-sdk <?phpnamespace app\common\library;use app\admin\model\yp\Order; use App\Api\PrintService; use App\Config\YlyConfig; use App\Oauth\YlyOauthClient; use think\Cache; use think\Config;class Yly {…...
JavaScript轮播图
HTML部分 <div class"box" onmouseover"over()" onmouseout"noover()"><img src"./img/zuo.png" alt"" class"left_arrow" onclick"left_last()"><img src"./img/yy.png" al…...
修复SteamUI.dll加载失败的指南,快速修复failed to load steamui.dll
在使用Steam平台进行游戏下载、安装和运行时,可能会遇到一些系统错误,比如“failed to load steamui.dll”。这个错误通常意味着Steam的用户界面库文件steamui.dll出现了问题。本文将详细介绍steamui.dll文件的相关信息以及如何修复这一问题。 一.什么是…...
PCL Local Surface Patches 关键点提取
目录 一、算法原理1、算法原理2、 参考文献二、代码实现三、结果展示本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫与GPT。 一、算法原理 1、算法原理 主曲率是某一点局部形状的体现,Local Surface Patches 关键点检测法…...
Vue与ASP.NET Core Web Api设置localhost与本地ip地址皆可访问
Vue的设置 我们创建并启动一个Vue项目,如下所示: 打开cmd,输入ipconfig查询本地ip地址: 想通过本地ip地址访问,把localhost改成本地ip地址,发现打不开: 这是因为Vue项目默认只有localhost&…...
Android 线程池的面试题 线程线程池面试题
1.为什么要用线程池 降低资源消耗:通过复用线程,降低创建和销毁线程的损耗。 提高响应速度:任务不需要等待线程创建就能立即执行。 提高线程的可管理性:使用线程池可以进行统一的分配、调优和监控。 2. 线程池执行流程(…...
Flink时间和窗口
目录 时间语义 水位线(Watermarks) 并行流中的水位线 窗口 滚动窗口—Tumbling Windows 滑动窗口—Sliding Windows 会话窗口—Session Windows 全局窗口—Global Windows 例子 时间语义 如图所示,由事件生成器(Event Pr…...
LLaMA模型量化方法优化:提高性能与减小模型大小
LLaMA模型量化方法优化:提高性能与减小模型大小 LLaMA模型量化方法优化:提高性能与减小模型大小引言新增量化方法性能评估7B模型13B模型 结果分析结论 LLaMA模型量化方法优化:提高性能与减小模型大小 引言 在大型语言模型(LLM)的应用中,模型大小和推理速度一直是关键的挑战。…...
前端CSS实现卡片抽奖效果
引言 在网页设计中,互动元素能够显著提升用户体验,吸引用户的注意力。其中,卡片抽奖效果常用于营销活动、游戏或娱乐场景,通过随机展示不同的卡片来增加趣味性和参与度。本文将详细介绍如何使用HTML和CSS来实现一个简单的卡片抽奖…...
Java在for循环中修改集合
前天看到一篇文章什么?for循环也会出问题?,里面涉及到在for循环中修改集合,想起来自己刚入行的时候就碰到过类似的问题,于是复现了一下文章中的问题,并试验了其它在循环中修改集合的方法。 底层原理参考什…...
Java小白入门到实战应用教程-运算符详解
Java小白入门到实战应用教程-运算符 上节回顾 在上节的内容中我们了解了变量和基本数据类型的内容,现在回顾一下上节课的内容。 声明变量的语法为: 数据类型 变量名; 其中在java中一共有8中基本数据类型,分别是:b…...
secureCRT同时在所有已打开窗口执行命令、mac-os下使用的SecureCRT版本 以及 SecureCRT一段时间不操作没有响应的问题
一、secureCRT命令行工具一次性同时在所有已打开窗口执行命令 公司的服务器比较多,最近因为opcache,上线发布后,需要重启所有的WEB服务器上的php。目前使用的jenkins发布,不过账号安全问题,给jenkins的账号权限受限不能…...
增材制造与智能制造关系
在撰写的增材制造技术与装备书籍中有着明确的描述,增材制造是智能制造的典型范例,是智能制造“类”的实例化过程。这种借助于计算机编程面向对象思想的解释可以更全面的理解增材制造和智能制造的关系。增材制造实例具备了智能制造类的属性,智…...
大数据学习栈记——Neo4j的安装与使用
本文介绍图数据库Neofj的安装与使用,操作系统:Ubuntu24.04,Neofj版本:2025.04.0。 Apt安装 Neofj可以进行官网安装:Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...
QMC5883L的驱动
简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...
【机器视觉】单目测距——运动结构恢复
ps:图是随便找的,为了凑个封面 前言 在前面对光流法进行进一步改进,希望将2D光流推广至3D场景流时,发现2D转3D过程中存在尺度歧义问题,需要补全摄像头拍摄图像中缺失的深度信息,否则解空间不收敛…...
ElasticSearch搜索引擎之倒排索引及其底层算法
文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...
华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建
华为云FlexusDeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色,华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型,能助力我们轻松驾驭 DeepSeek-V3/R1,本文中将分享如何…...
LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》
这段 Python 代码是一个完整的 知识库数据库操作模块,用于对本地知识库系统中的知识库进行增删改查(CRUD)操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 📘 一、整体功能概述 该模块…...
什么是VR全景技术
VR全景技术,全称为虚拟现实全景技术,是通过计算机图像模拟生成三维空间中的虚拟世界,使用户能够在该虚拟世界中进行全方位、无死角的观察和交互的技术。VR全景技术模拟人在真实空间中的视觉体验,结合图文、3D、音视频等多媒体元素…...
从物理机到云原生:全面解析计算虚拟化技术的演进与应用
前言:我的虚拟化技术探索之旅 我最早接触"虚拟机"的概念是从Java开始的——JVM(Java Virtual Machine)让"一次编写,到处运行"成为可能。这个软件层面的虚拟化让我着迷,但直到后来接触VMware和Doc…...
解析两阶段提交与三阶段提交的核心差异及MySQL实现方案
引言 在分布式系统的事务处理中,如何保障跨节点数据操作的一致性始终是核心挑战。经典的两阶段提交协议(2PC)通过准备阶段与提交阶段的协调机制,以同步决策模式确保事务原子性。其改进版本三阶段提交协议(3PC…...
JDK 17 序列化是怎么回事
如何序列化?其实很简单,就是根据每个类型,用工厂类调用。逐个完成。 没什么漂亮的代码,只有有效、稳定的代码。 代码中调用toJson toJson 代码 mapper.writeValueAsString ObjectMapper DefaultSerializerProvider 一堆实…...
