一文了解Python爬虫(从入门到精通)掌握这篇就够了 !

Python面向对象全面分析 Python面向对象核心:类定义属性与方法,对象为实例;支持继承、方法重写、类/实例变量等。内置类属性如__dict__等;对象销毁依赖引用计数与垃圾回收。继承时需注意构造方法调用及查找顺序;私有属性经名称修饰防止覆盖。 阅读详情

前言

本文针对初学者,我会用最简单的案例告诉你如何入门python爬虫!

想要入门Python 爬虫首先需要解决四个问题

  • 熟悉python编程
  • 了解HTML
  • 了解网络爬虫的基本原理
  • 学习使用python爬虫库

在这里插入图片描述

一、你应该知道什么是爬虫?

网络爬虫,其实叫作网络数据采集更容易理解。

就是通过编程向网络服务器请求数据(HTML表单),然后解析HTML,提取出自己想要的数据。

归纳为四大步:

  1. 根据url获取HTML数据
  2. 解析HTML,获取目标信息
  3. 存储数据
  4. 重复第一步

这会涉及到数据库、网络服务器、HTTP协议、HTML、数据科学、网络安全、图像处理等非常多的内容。但对于初学者而言,并不需要掌握这么多。

文末领取最新Python全套学习资源

二、python要学习到什么程度

如果你不懂python,那么需要先学习python这门非常easy的语言(相对其它语言而言)。

编程语言基础语法无非是数据类型、数据结构、运算符、逻辑结构、函数、文件IO、错误处理这些,学起来会显枯燥但并不难。

刚开始入门爬虫,你甚至不需要去学习python的类、多线程、模块之类的略难内容。找一个面向初学者的教材或者网络教程,花个十几天功夫,就能对python基础有个三四分的认识了,这时候你可以玩玩爬虫喽!

当然,前提是你必须在这十几天里认真敲代码,反复咀嚼语法逻辑,比如列表、字典、字符串、if语句、for循环等最核心的东西都得捻熟于心、于手。

可以去牛客网在线练习,这个python入门题单从最开始的Hello World到实践任务、数据分析、机器学习,都会非常详细地职导你应该使用什么函数,应该怎么输入输出。

img

牛客网的这些在线刷题全部免费,不管是小白入门还是想进阶学习都可以去试试哈

教材方面比较多选择,我个人是比较推荐python官方文档以及python简明教程,前者比较系统丰富、后者会更简练。

三、为什么要懂HTML

前面说到过爬虫要爬取的数据藏在网页里面的HTML里面的数据,有点绕哈!

维基百科是这样解释HTML的

超文本标记语言(英语:HyperTextMarkupLanguage,简称:HTML)是一种用于创建网页的标准标记语言。HTML是一种基础技术,常与CSS、JavaScript一起被众多网站用于设计网页、网页应用程序以及移动应用程序的用户界面网页浏览器可以读取HTML文件,并将其渲染成可视化网页。HTML描述了一个网站的结构语义随着线索的呈现,使之成为一种标记语言而非编程语言。

总结一下,HTML是一种用于创建网页的标记语言,里面嵌入了文本、图像等数据,可以被浏览器读取,并渲染成我们看到的网页样子。

所以我们才会从先爬取HTML,再 解析数据,因为数据藏在HTML里。

学习HTML并不难,它并不是编程语言,你只需要熟悉它的标记规则,这里大致讲一下。

HTML标记包含标签(及其属性)、基于字符的数据类型、字符引用和实体引用等几个关键部分。

HTML标签是最常见的,通常成对出现,比如<**h1**></**h1**>

这些成对出现的标签中,第一个标签是开始标签,第二个标签是结束标签。两个标签之间为元素的内容(文本、图像等),有些标签没有内容,为空元素,如<**img**>

以下是一个经典的Hello World程序的例子:

<!DOCTYPE html>
<html>
  <head>
    <title>This is a title</title>
  </head>
  <body>
    <p>Hello world!</p>
  </body>
</html>

HTML文档由嵌套的HTML元素构成。它们用HTML标签表示,包含于尖括号中,如<**p**>
在一般情况下,一个元素由一对标签表示:“开始标签”<**p**>与“结束标签”</**p**>。元素如果含有文本内容,就被放置在这些标签之间。

四、了解python网络爬虫的基本原理

在编写python爬虫程序时,只需要做以下两件事:

  • 发送GET请求,获取HTML
  • 解析HTML,获取数据

这两件事,python都有相应的库帮你去做,你只需要知道如何去用它们就可以了。

文末领取最新Python全套学习资源

五、用python库爬取百度首页标题和图片

首先,发送HTML数据请求可以使用python内置库urllib,该库有一个urlopen函数,可以根据url获取HTML文件,这里尝试获取百度首页“https://www.baidu.com”的HTML内容

# 导入urllib库的urlopen函数
from urllib.request import urlopen 
# 发出请求,获取html
html = urlopen("https://www.baidu.com/")
# 获取的html内容是字节,将其转化为字符串
html_text = bytes.decode(html.read())
# 打印html内容
print(html_text)

看看效果:

img

输出html内容部分截取

我们看一下真正百度首页html是什么样的,如果你用的是谷歌浏览器,在百度主页打开设置>更多工具>开发者工具,点击element,就可以看到了:

img

在谷歌浏览器中查看HTML

对比一下你就会知道,刚才通过python程序获取到的HTML和网页中的一样!

获取了HTML之后,接下就要解析HTML了,因为你想要的文本、图片、视频都藏在HTML里,你需要通过某种手段提取需要的数据。

python同样提供了非常多且强大的库来帮助你解析HTML,这里以著名的python库BeautifulSoup为工具来解析上面已经获取的HTML。

BeautifulSoup是第三方库,需要安装使用。在命令行用pip安装就可以了:

pip install bs4

BeautifulSoup会将HTML内容转换成结构化内容,你只要从结构化标签里面提取数据就OK了:

img

比如,我想获取百度首页的标题“百度一下,我就知道”,怎么办呢?

这个标题是被两个标签套住的,一个是一级标签,另一个是二级标签📢 แจ้งเตือน: python/article/details/ - ประเด็นร้อน

img

# 导入urlopen函数
from urllib.request import urlopen
# 导入BeautifulSoup
from bs4 import BeautifulSoup as bf
# 请求获取HTML
html = urlopen("https://www.baidu.com/")
# 用BeautifulSoup解析html
obj = bf(html.read(),'html.parser')
# 从标签head、title里提取标题
title = obj.head.title
# 打印标题
print(title)

看看结果:

img

这样就搞定了,成功提取出百度首页的标题。

文末领取最新Python全套学习资源

如果我想要下载百度首页logo图片呢?

第一步先获取该网页所有图片标签和url,这个可以使用BeautifulSoup的findAll方法,它可以提取包含在标签里的信息。

一般来说,HTML里所有图片信息会在“img”标签里,所以我们通过findAll(“img”)就可以获取到所有图片的信息了。

# 导入urlopen
from urllib.request import urlopen
# 导入BeautifulSoup
from bs4 import BeautifulSoup as bf
# 请求获取HTML
html = urlopen("https://www.baidu.com/")
# 用BeautifulSoup解析html
obj = bf(html.read(),'html.parser')
# 从标签head、title里提取标题
title = obj.head.title
# 使用find_all函数获取所有图片的信息
pic_info = obj.find_all('img')
# 分别打印每个图片的信息
for i in pic_info:
    print(i)

看看结果:

img

打印出了所有图片的属性,包括class(元素类名)、src(链接地址)、长宽高等。

其中有百度首页logo的图片,该图片的class(元素类名)是index-logo-src。

img

[<img class="index-logo-src" height="129" hidefocus="true" src="//www.baidu.com/img/bd_logo1.png" usemap="#mp" width="270"/>, <img alt="到百度首页" class="index-logo-src" src="//www.baidu.com/img/baidu_jgylogo3.gif" title="到百度首页"/>]

可以看到图片的链接地址在src这个属性里,我们要获取图片链接地址:

# 导入urlopen
from urllib.request import urlopen
# 导入BeautifulSoup
from bs4 import BeautifulSoup as bf
# 请求获取HTML
html = urlopen("https://www.baidu.com/")
# 用BeautifulSoup解析html
obj = bf(html.read(),'html.parser')
# 从标签head、title里提取标题
title = obj.head.title
# 只提取logo图片的信息
logo_pic_info = obj.find_all('img',class_="index-logo-src")
# 提取logo图片的链接
logo_url = "https:"+logo_pic_info[0]['src']
# 打印链接
print(logo_url)

结果:

img

获取地址后,就可以用urllib.urlretrieve函数下载logo图片了

# 导入urlopen
from urllib.request import urlopen
# 导入BeautifulSoup
from bs4 import BeautifulSoup as bf
# 导入urlretrieve函数,用于下载图片
from urllib.request import urlretrieve
# 请求获取HTML
html = urlopen("https://www.baidu.com/")
# 用BeautifulSoup解析html
obj = bf(html.read(),'html.parser')
# 从标签head、title里提取标题
title = obj.head.title
# 只提取logo图片的信息
logo_pic_info = obj.find_all('img',class_="index-logo-src")
# 提取logo图片的链接
logo_url = "https:"+logo_pic_info[0]['src']
# 使用urlretrieve下载图片
urlretrieve(logo_url, 'logo.png')

最终图片保存在’logo.png’

img

六、结语

本文用爬取百度首页标题和logo图片的案例,讲解了python爬虫的基本原理以及相关python库的使用,这是比较初级的爬虫知识,还有很多优秀的python爬虫库和框架等待后续去学习。

当然,掌握本文讲的知识点,你就已经入门python爬虫了。加油吧,少年!

以上就是今天的全部内容分享,觉得有用的话欢迎点赞收藏哦!

Python经验分享

学好 Python 不论是用于就业还是做副业赚钱都不错,而且学好Python还能契合未来发展趋势——人工智能、机器学习、深度学习等。
小编是一名Python开发工程师,自己整理了一套最新的Python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。如果你也喜欢编程,想通过学习Python转行、做副业或者提升工作效率,这份【最新全套Python学习资料】 一定对你有用!

小编为对Python感兴趣的小伙伴准备了以下籽料 !

对于0基础小白入门:

如果你是零基础小白,想快速入门Python是可以考虑培训的!

  • 学习时间相对较短,学习内容更全面更集中
  • 可以找到适合自己的学习方案

包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、机器学习、Python量化交易等学习教程。带你从零基础系统性的学好Python!

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

三、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

五、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。


最新全套【Python入门到进阶资料 & 实战源码 &安装工具】(安全链接,放心点击)

我已经上传至CSDN官方,如果需要可以扫描下方官方二维码免费获取【保证100%免费】

*今天的分享就到这里,喜欢且对你有所帮助的话,记得点赞关注哦~下回见 !

Qwen3-ForcedAligner-0.6B 私有化部署实战:从模型离线、Docker封装到会议原声精准回听 text=text,模型离线下载版本固定SHA256目录规划环境隔离Docker封装GPU绑定健康检查长音频切片全局时间恢复临时文件清理日志脱敏离线验证模型升级快速回滚这些内容看起来和“模型算法”关系不大,却决定了一个 AI 模块究竟只能停留在 Demo,还是能长期运行在真实系统里。已经知道说了什么↓准确找到它什么时候说逐字稿点击回听搜索定位纪要复核会议资料追溯从产品界面上看,它可能只是用户点击一句话以后,播放器准确跳到了对应位置。 阅读详情

相关推荐

基于Kubernetes的智能监控告警与AI 运维分析平台

本项目基于一主二从Kubernetes集群,构建智能运维系统:通过Prometheus与node_exporter采集节点指标,触发告警后由Alertmanager路由至Flask API;结合RAG架构调用通义千问大模型,检索运维知识库进行根因分析并生成建议;结果写入JSON文件,由Streamlit页面实时展示,并支持用户交互追问。系统实现从监控告警到AI诊断的闭环,具备可扩展的知识库管理与多轮对话能力,适用于云原生环境下的AIOps场景。

2503_90172382的博客 185

初识深度学习

本文基于PyTorch框架,从零构建一个手写数字识别神经网络。通过MNIST数据集,系统介绍了张量、DataLoader、神经网络结构、损失函数(交叉熵)、优化器(Adam)及训练测试流程,完整实现了端到端的深度学习项目,涵盖设备选择、自动求导、前向传播与反向传播等核心概念,帮助读者掌握深度学习基础实战技能。

2301_77064095的博客 404

慢就是快12-1 继承|方法重写

方法1:isinstance(instance,Class),作用:判断某个对象是否为指定类或其子类的实例。方法2:issubclass(Class1,Class2),作用:判断某个类是否是另一个类的子类。

weixin_39061000的博客 53

Leecode#29刷题之两数相除

给你两个整数,被除数dividend和除数divisor。将两数相除,要求乘法、除法和取余运算。整数除法应该向零截断,也就是截去(truncate)其小数部分。例如,8.345将被截断为8-2.7335将被截断至-2。返回被除数dividend除以除数divisor得到的。假设我们的环境只能存储有符号整数,其数值范围是。本题中,如果商231 − 1,则返回231 − 1;如果商-231,则返回-231。310/3 = 3.33333.. ,向零截断后得到 3。-2。

babyiu5201314的博客 128

项目改造日记:合规检查。

代码整体质量高,命名规范、注释详实。发现主要问题:direct_page.py中“导出JSON”实际导出路径而非结果,为缺陷;存在多行语句、超长行及日志笔误。本机“开始处理”流程为异步入队,后台引擎处理后通过信号桥回传结果,UI仅在主线程更新。插件试用四步(拆分→转换→标准→回传)严格串行依赖,每步均在后台线程执行核心函数,结果通过信号机制安全回传至主线程展示,确保界面不阻塞。

caixuwen的专栏 207

【AI+量化实战 #01】AI不是股神?用大模型辅助量化研究的正确姿势与Prompt框架

AI 可以帮你「读得快」,但不能帮你「做决定」。交易信号必须来自你验证过的规则(比如双均线金叉、量价背离),AI 只能帮你解释信号、检查逻辑。

2501_94338261的博客 1328

django招聘网站信息爬取与分析系统79704-计算机课程设计、毕业设计

本系统采用B/S架构,前端用Vue.js框架构建用户界面,后端用Django框架进行业务逻辑处理,数据持久层用MySQL数据库。系统核心功能分为三个模块,学生用户包含招聘信息浏览、简历投递、面试通知查看以及基于Spark的数据对比可视化图表功能,企业端实现对岗位发布、简历接收、面试流程的管理,管理员端通过数据大屏集中监管所有招聘岗位、投递记录、通知信息,进行系统数据的综合管理。系统用Python编写的高效爬虫模块定时从目标网站获取招聘数据,保证信息源的实时性、广泛性。

高级程序源的博客 324

Foundry:蛋白质设计统一工具框架

蛋白质设计统一工具框架

weixin_62528784的博客 275

OpenClaw 实战|低成本搭建电商商品监控与数据分析体系,告别手动复制粘贴

做电商运营、竞品分析或者个人薅优惠的时候,很多人都经历过这样的困境: 想要跟踪一批商品的价格变动、库存状态、规格信息,只能每天手动打开网页复制记录。商品一多,耗时耗力还容易出错;等到发现竞品降价、库存清空的时候,已经错过了最佳决策时机。直接写脚本解析网页源码,又会遇到平台的访问限制、页面改版导致解析规则直接失效,经常今天跑通明天就报错。最近我在实践中尝试用 OpenClaw 这套工具方案,快速搭建了一套轻量的商品监控 + 数据分析流程。

2301_78159247的博客 272

Python 依赖冲突排查两小时?用 virtualenv 和 pipdeptree 实现环境秒级回溯定位

你为本地运行的 AI Agent 项目更新了一个新功能包,重启服务后,熟悉的报错出现:ImportError: cannot import name 'xxx' from 'somepackage'。回滚更新、反复重启,时间悄然流逝,却仍难以确定是哪个包、哪个版本在暗中破坏了依赖链。本文提出一种基于环境快照与依赖树对比的排查方法,对于因包版本静默降级或约束冲突导致的导入失败,能在较短时间内锁定问题根源。

昨日种种,皆成今我。今日种种,皆成新我。 399

GitHub 热榜项目:日榜(2026-09-12)

本期新增星数最高的是 gods-eye-view,一个浏览器 3D 地球,叠加航班、船舶、卫星等公开数据,新增 3,680 星。i-have-adhd 给编程代理立了 10 条输出规则:先给答案,结尾只留一个具体下一步;同榜多个项目也在把先澄清需求、先写规格再实现做成固定流程。i-have-adhd 的 SKILL.md 可以直接复制进 CLI 提示词,也可以 fork 后自行修改。

u130130的博客 357

python: Task Scheduler

介绍 DDD 分层架构下任务调度系统的整体设计目标、技术选型(Python 3.11、PyCharm、ttkbootstrap、SQLAlchemy、FastAPI 等)

Geovin Du Dream Park 169

Mercury 2.5 发布:当扩散大模型跑到 1,107 tokens/sec —— dLLM 的延迟经济学与 Java/Python 落地实战

2026 年 9 月 8 日(UTC),Inception Labs 正式发布 Mercury 2.5。根据官方博客,这是目前市场上能力最强的扩散式大语言模型(diffusion LLM,简称 dLLM),也是官方声称"有史以来训练过的最大扩散语言模型"。的生成速度、260K的上下文窗口、以及发布期$0.04/百万输入 token的促销价格。)与 Baseten。这文章不重复新闻稿,而是回答三个工程问题:扩散式生成到底快在哪里?

超人不会飞 319

JavaScript 数据类型完全指南

本文深入剖析JavaScript类型系统,从栈堆内存模型揭示原始类型与引用类型的本质差异,澄清“按引用传递”误解,详解7大原始类型(尤其Number的浮点精度、安全整数范围、NaN/Infinity/−0等特殊值),并梳理类型转换、检测、序列化等核心机制,直击0.1+0.2!==0.3、[]==![]等经典陷阱,提供工程级解决方案,助开发者规避深层坑点。

小李同学的博客 477

小模型指令微调:数据混合、模板与过拟合的最小复现

训练损失越来越低,小模型就越来越会听指令吗?本文将复现目标缩小为三个可检查的问题:改变任务混合后学到了什么,只监督回答与监督全文有何差别,换模板后还能否生成正确答案。我们阅读指令微调论文及官方代码,用真正训练的微型循环语言模型检查协议,并提供本地基础模型的迁移脚本。结果保留低准确率、大种子波动与模板失效,不将玩具实验包装成论文成绩。

weixin_44369324的博客 354

具身智能机器人实战教程——模块5(1)

在前面的课程中,我们已经成功在 MuJoCo 物理仿真环境中让众擎 T800 人形机器人走起来了。但此时的机器人只是“闷头往前走”,我们无法人为干预它的轨迹。本节课的核心目标,就是打破这种“自动驾驶”状态,通过键盘 WASD 按键实现对机器人前后左右移动的精准控制,让开发者真正成为机器人的控制者。本文以众擎 T800 人形机器人为载体,系统讲解了在 MuJoCo 物理仿真环境中进行机器人工程调优与二次开发的完整路径。

lagelangri666的博客 272

Web 服务器怎么选

Nginx、Apache、Tomcat、Caddy、Traefik,还有框架自带的 uvicorn、Gunicorn、net/http——这些 Web 服务器各自擅长什么,什么场景选什么。

愤怒的小兵 975

基于大数据的股票历史行情数据分析与可视化

本文设计并实现了一套基于大数据的股票历史行情数据分析与可视化系统,采用Python、Hadoop、Spark、Hive等技术构建数据处理平台,结合Django与Vue框架完成前后端开发,利用Echarts实现多维度可视化。系统涵盖市场、个股、板块、资金及大屏分析功能,并引入K-means聚类算法进行群体画像。通过数据采集清洗、分布式计算与交互式展示,有效提升金融数据分析效率与决策支持能力,具有良好的实践参考价值。文末可获取完整源码。

lybysj668的博客 527
上一篇: 大学生现在学Python还有用吗?他的就业前景及薪资待遇怎么样?
下一篇: 学习编程之前,你必须要知道的这6件事!
田野猫咪
博客等级 码龄4年 5022粉丝 502原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值