15分钟学 Python 第36天 :Python 爬虫入门(二)
Python 爬虫入门:环境准备
在进行Python爬虫的学习和实践之前,首先需要准备好合适的开发环境。本节将详细介绍Python环境的安装、必要库的配置、以及常用工具的使用,为后续的爬虫编写奠定坚实的基础。
1. 环境准备概述
1.1 为什么环境准备重要?
环境准备是确保爬虫能够顺利运行的关键。一个良好的开发环境可以提高代码的运行效率,减少调试时间,同时确保所需的库和工具都是最新版本,从而避免潜在的兼容性问题。
1.2 环境准备的步骤
环境准备可以分为几个主要步骤,具体包括:
- 安装Python
- 配置虚拟环境
- 安装必要的库
- 熟悉开发工具
2. 安装Python
2.1 Python简介
Python是一种高级编程语言,因其简洁易读的语法和强大的库支持而受到广泛欢迎。Python 3是当前的主流版本,推荐使用Python 3.x进行爬虫开发。
2.2 安装步骤
Windows 环境
-
下载Python:
- 前往Python官网下载适合Windows的最新版本安装包(64位或32位)。
-
执行安装:
- 双击下载的安装包,在安装界面勾选“Add Python to PATH”,然后点击“Install Now”进行安装。
-
验证安装:
- 打开命令提示符(CMD),输入以下命令:
python --version - 如果显示Python的版本号,即表示安装成功。
- 打开命令提示符(CMD),输入以下命令:
macOS 环境
-
使用Homebrew安装:
- 打开终端,输入以下命令:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" brew install python
- 打开终端,输入以下命令:
-
验证安装:
- 输入以下命令检查安装:
python3 --version
- 输入以下命令检查安装:
Linux 环境
-
使用包管理器安装:
- 对于Debian/Ubuntu系统:
sudo apt update sudo apt install python3
- 对于Debian/Ubuntu系统:
-
验证安装:
- 输入以下命令:
python3 --version
- 输入以下命令:
2.3 Python版本管理
在开发多个项目时,版本管理十分重要。推荐使用pyenv来管理Python版本,具体步骤如下:
安装pyenv
-
在Linux或macOS上,安装
pyenv:curl https://pyenv.run | bash -
将以下内容添加到你的shell配置文件中(如
~/.bashrc或~/.zshrc):export PATH="$HOME/.pyenv/bin:$PATH" eval "$(pyenv init --path)" eval "$(pyenv init -)" eval "$(pyenv virtualenv-init -)" -
重启终端。
使用pyenv安装Python
pyenv install 3.x.x # 替换为具体版本号
pyenv global 3.x.x
3. 配置虚拟环境
3.1 什么是虚拟环境
虚拟环境是一个独立的Python环境,可以为每个项目隔离依赖库,避免不同项目间的库版本冲突。
3.2 创建虚拟环境
使用venv模块轻松创建虚拟环境。以下是步骤:
创建虚拟环境
- 打开命令提示符或终端,选择项目目录。
- 输入以下命令创建虚拟环境:
python -m venv myenv # myenv为虚拟环境名称
激活虚拟环境
-
Windows:
myenv\Scripts\activate -
macOS/Linux:
source myenv/bin/activate
验证激活状态
输入以下命令查看当前环境:
which python # Linux/macOS
where python # Windows
3.3 退出虚拟环境
输入deactivate退出当前虚拟环境。
4. 安装必要的库
爬虫常用的库主要包括:requests、BeautifulSoup、lxml、和pandas等。通过pip安装这些库。
4.1 安装库的步骤
确保虚拟环境已激活,输入以下命令安装库:
pip install requests beautifulsoup4 lxml pandas
4.2 查看已安装库
可通过以下命令查看已安装的库和版本:
pip list
4.3 需求文件的创建及使用
在项目中,有时需要管理特定依赖库版本,创建requirements.txt文件:
pip freeze > requirements.txt
然后可通过以下命令安装requirements.txt中列出的依赖:
pip install -r requirements.txt
5. 常用开发工具
5.1 文本编辑器
推荐使用以下文本编辑器或IDE进行Python开发:
| 工具 | 特点 |
|---|---|
| PyCharm | 功能强大,智能提示,支持多种框架 |
| VS Code | 轻量级,扩展性强,支持多种语言 |
| Sublime Text | 速度快,界面简洁 |
| Jupyter Notebook | 适合数据分析与可视化,支持交互式运行 |
5.2 安装和使用PyCharm
- 在JetBrains官网下载PyCharm Community版。
- 安装并启动PyCharm。
- 创建新项目,选择Python解释器为刚才创建的虚拟环境。
5.3 安装和使用VS Code
- 在Visual Studio Code官网下载并安装。
- 安装Python扩展,支持Python语言的编辑和调试,使用命令面板(
Ctrl + Shift + P)执行Python: Select Interpreter选择虚拟环境。
6. 示例代码:简单爬虫
在确保环境准备好后,下面提供一个简单的爬虫示例:
6.1 示例代码
以下代码示例演示如何使用requests和BeautifulSoup抓取网页的标题和所有超链接。
import requests
from bs4 import BeautifulSoup# 目标网站URL
url = 'https://example.com'# 发送GET请求
response = requests.get(url)# 检查响应状态
if response.status_code == 200:# 解析HTML文档soup = BeautifulSoup(response.text, 'lxml')# 提取网页标题title = soup.title.stringprint(f"网页标题: {title}")# 提取所有链接links = soup.find_all('a')for link in links:href = link.get('href')text = link.stringprint(f"链接地址: {href}, 链接文本: {text}")
else:print("请求失败,状态码:", response.status_code)
6.2 代码运行流程图
以下是程序运行的流程图:
+------------------+
| 发送请求 |
| (requests.get()) |
+--------+---------+|v
+------------------+
| 获取响应 |
| (response.text) |
+--------+---------+|v
+------------------+
| 解析网页内容 |
| (BeautifulSoup) |
+--------+---------+|v
+------------------+
| 提取数据 |
| (soup.find()) |
+--------+---------+|v
+------------------+
| 存储数据 |
| (打印到终端) |
+------------------+
6.3 代码结果展示
当运行上述代码时,若目标网页正常访问,将返回该网页的标题和所有链接,如下示例输出:
网页标题: Example Domain
链接地址: https://www.iana.org/ , 链接文本: More information...
7. 学习小结
通过本节内容,我们详细介绍了Python爬虫环境的准备,包括Python的安装、虚拟环境的创建与管理、常用库的安装以及开发工具的选择。同时,提供了一个简单爬虫的示例,帮助理解如何在准备好的环境中进行爬虫开发。
环境准备是学习爬虫的基础,只有在配置好开发环境的前提下,才能高效地编写和调试爬虫代码。在实践过程中,请注意遵循法律和道德规范,合理使用爬虫技术。

怎么样今天的内容还满意吗?再次感谢观众老爷的观看。
最后,祝您早日实现财务自由,还请给个赞,谢谢!
相关文章:
15分钟学 Python 第36天 :Python 爬虫入门(二)
Python 爬虫入门:环境准备 在进行Python爬虫的学习和实践之前,首先需要准备好合适的开发环境。本节将详细介绍Python环境的安装、必要库的配置、以及常用工具的使用,为后续的爬虫编写奠定坚实的基础。 1. 环境准备概述 1.1 为什么环境准备…...
Spring:强制登陆与拦截器
1.只使用session验证 (1)第一步:用户登陆时存储session ApiOperation("用户登陆") PostMapping("/login") public AppResult login(HttpServletRequest request,RequestParam("username") ApiParam("用…...
MySQL-数据库约束
1.约束类型 类型说明NOT NULL非空约束 指定非空约束的列不能存储NULL值 DEFAULT默认约束当没有给列赋值时使用的默认值UNIQUE唯一约束指定唯一约束的列每行数据必须有唯一的值PRIMARY KEY主键约束NOT NULL和UNIQUE的结合,可以指定一个列霍多个列,有助于…...
线性表三——队列queue
#include<bits/stdc.h> using namespace std; int n,m; queue<int> q;int main(){cin>>n>>m;for(int i1;i<n;i) q.push(i);int k0;while(!q.empty()){k;if(k<m)//从队头出来,再次回到队尾{int idq.front();//记录出去的编号 q.pop();…...
算法笔记(十)——队列+宽搜
文章目录 N 叉数的层序遍历二叉树的锯齿形层序遍历二叉树最大宽度在每个树行中找最大值 BFS是图上最基础、最重要的搜索算法之一; 每次都尝试访问同一层的节点如果同一层都访问完了,再访问下一层 BFS基本框架 void bfs(起始点) {将起始点放入队列中;标记…...
webpack配置全面讲解【完整篇】
文章目录 前言webpack 核心包:配置文件导出三种方式:在线配置 webpack配置文件解析:入口(Entry):输出(Output):加载器(Loaders):插件&…...
十、kotlin的协程
协程 基本概念定义组成挂起和恢复结构化并发协程构建器作用域构建器挂起函数阻塞与非阻塞runBlocking全局协程像守护线程 Job的生命周期 常用函数延时和等待启动和取消启动取消 暂停 协程启动调度器启动方式启动模式线程上下文继承的定义继承的公式 协程取消与超时取消挂起点取…...
vscode qt 最新开发环境配置, 基于最新插件 Qt All Extensions Pack
qt 之前发布了vscode qt offical ,但是最新更新中将其升级改为了几个不同的插件,功能更强大 1. 前置条件 qt 已安装 2. 插件安装 打开vscode 插件安装,搜索qt 会看到很多qt插件,直接选择Qt All Extensions Pack 安装 会安装qt环境所需的…...
【MySQL】Ubuntu环境下MySQL的安装与卸载
目录 1.MYSQL的安装 2.MySQL的登录 3.MYSQL的卸载 4.设置配置文件 1.MYSQL的安装 首先我们要看看我们环境里面有没有已经安装好的MySQL 我们发现是默认是没有的。 我们还可以通过下面这个命令来确认有没有mysql的安装包 首先我们得知道我们当前的系统版本是什么 lsb_…...
C# StringBuilder类:高效构建和修改字符串的利器
C# 中的 StringBuilder 类是一个可变的字符序列,用于高效地构建和修改字符串。与字符串(string)不同,字符串在 C# 中是不可变的,这意味着每次修改字符串(如拼接、替换等操作)时,都会…...
AVL平衡树(AVL Tree)
**场景:课堂讨论** --- **小明(ESFP学生)**:张老师,为什么AVL树(AVL Tree)中的旋转操作这么重要?感觉只是节点的移动,有没有什么实际意义? **张老师&#…...
【python实操】python小程序之两数取大值以及login登录
引言 python小程序之两数取大值以及login登录 文章目录 引言一、两数取大值1.1 题目1.2 代码1.3 代码解释 二、login登录2.1 题目2.2 代码2.3 代码解释 三、思考3.1 两数取大值3.2 login登录 一、两数取大值 1.1 题目 定义一个函数my_max,包含两个参数, 函数的作用…...
Pikachu-File Inclusion-远程文件包含
远程文件包含漏洞 是指能够包含远程服务器上的文件并执行。由于远程服务器的文件是我们可控的,因此漏洞一旦存在,危害性会很大。但远程文件包含漏洞的利用条件较为苛刻;因此,在web应用系统的功能设计上尽量不要让前端用户直接传变…...
TIM(Timer)定时器的原理
一、介绍 硬件定时器的工作原理基于时钟信号源提供稳定的时钟信号作为计时器的基准。计数器从预设值开始计数,每当时钟信号到达时计数器递增。当计数器达到预设值时,定时器会触发一个中断信号通知中断控制器处理相应的中断服务程序。在中断服务程序中&a…...
Microsoft Visual Studio有多油饼
#1 Microsoft Visual Studio C 2023: 必须安装在C盘 为啥? 安其他盘能亖啊? 真有病 #2 Microsoft Visual Studio C 2013: 每个硬盘必须都腾出至少8个G的空间 不是我安在这个盘不就是为了其他盘没空间吗? 合着…...
Golang | Leetcode Golang题解之第452题用最少数量的箭引爆气球
题目: 题解: func findMinArrowShots(points [][]int) int {if len(points) 0 {return 0}sort.Slice(points, func(i, j int) bool { return points[i][1] < points[j][1] })maxRight : points[0][1]ans : 1for _, p : range points {if p[0] > …...
Python 从入门到实战35(进程-multiprocessing模块)
我们的目标是:通过这一套资料学习下来,可以熟练掌握python基础,然后结合经典实例、实践相结合,使我们完全掌握python,并做到独立完成项目开发的能力。 上篇文章我们讨论了turtle库绘制图画操作的相关知识。今天学习一下…...
“米哈游悄然布局未来科技:入股星海图,共绘具身智能机器人新篇章“
米哈游悄然入股具身智能机器人公司:技术布局与未来展望 近日,米哈游阿尔戈科技有限公司宣布入股具身智能机器人公司星海图,这一消息在行业内引起了广泛关注。米哈游,这家以游戏开发而闻名的企业,近年来正逐步扩大其在人工智能和新兴科技领域的投资布局,此次入股星海图正是…...
基于spring boot的篮球论坛系统
作者:计算机搬砖家 开发技术:SpringBoot、php、Python、小程序、SSM、Vue、MySQL、JSP、ElementUI等,“文末源码”。 专栏推荐:SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:Java精选实战项…...
华夏ERP账号密码泄露漏洞
漏洞描述 华夏ERP账号密码泄露漏洞 漏洞复现 FOFA "jshERP-boot" POC IP/jshERP-boot/user/getAllList;.ico...
React Native 开发环境搭建(全平台详解)
React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...
深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南
🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南 在数字化营销时代,邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天,我们将深入解析邮件打开率、网站可用性、页面参与时…...
基于Java+MySQL实现(GUI)客户管理系统
客户资料管理系统的设计与实现 第一章 需求分析 1.1 需求总体介绍 本项目为了方便维护客户信息为了方便维护客户信息,对客户进行统一管理,可以把所有客户信息录入系统,进行维护和统计功能。可通过文件的方式保存相关录入数据,对…...
R 语言科研绘图第 55 期 --- 网络图-聚类
在发表科研论文的过程中,科研绘图是必不可少的,一张好看的图形会是文章很大的加分项。 为了便于使用,本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中,获取方式: R 语言科研绘图模板 --- sciRplothttps://mp.…...
离线语音识别方案分析
随着人工智能技术的不断发展,语音识别技术也得到了广泛的应用,从智能家居到车载系统,语音识别正在改变我们与设备的交互方式。尤其是离线语音识别,由于其在没有网络连接的情况下仍然能提供稳定、准确的语音处理能力,广…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现指南针功能
指南针功能是许多位置服务应用的基础功能之一。下面我将详细介绍如何在HarmonyOS 5中使用DevEco Studio实现指南针功能。 1. 开发环境准备 确保已安装DevEco Studio 3.1或更高版本确保项目使用的是HarmonyOS 5.0 SDK在项目的module.json5中配置必要的权限 2. 权限配置 在mo…...
Vue3 PC端 UI组件库我更推荐Naive UI
一、Vue3生态现状与UI库选择的重要性 随着Vue3的稳定发布和Composition API的广泛采用,前端开发者面临着UI组件库的重新选择。一个好的UI库不仅能提升开发效率,还能确保项目的长期可维护性。本文将对比三大主流Vue3 UI库(Naive UI、Element …...
何谓AI编程【02】AI编程官网以优雅草星云智控为例建设实践-完善顶部-建立各项子页-调整排版-优雅草卓伊凡
何谓AI编程【02】AI编程官网以优雅草星云智控为例建设实践-完善顶部-建立各项子页-调整排版-优雅草卓伊凡 背景 我们以建设星云智控官网来做AI编程实践,很多人以为AI已经强大到不需要程序员了,其实不是,AI更加需要程序员,普通人…...
小智AI+MCP
什么是小智AI和MCP 如果还不清楚的先看往期文章 手搓小智AI聊天机器人 MCP 深度解析:AI 的USB接口 如何使用小智MCP 1.刷支持mcp的小智固件 2.下载官方MCP的示例代码 Github:https://github.com/78/mcp-calculator 安这个步骤执行 其中MCP_ENDPOI…...
