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

15分钟学 Python 第36天 :Python 爬虫入门(二)

Python 爬虫入门:环境准备

在进行Python爬虫的学习和实践之前,首先需要准备好合适的开发环境。本节将详细介绍Python环境的安装、必要库的配置、以及常用工具的使用,为后续的爬虫编写奠定坚实的基础。

1. 环境准备概述

1.1 为什么环境准备重要?

环境准备是确保爬虫能够顺利运行的关键。一个良好的开发环境可以提高代码的运行效率,减少调试时间,同时确保所需的库和工具都是最新版本,从而避免潜在的兼容性问题。

1.2 环境准备的步骤

环境准备可以分为几个主要步骤,具体包括:

  1. 安装Python
  2. 配置虚拟环境
  3. 安装必要的库
  4. 熟悉开发工具

2. 安装Python

2.1 Python简介

Python是一种高级编程语言,因其简洁易读的语法和强大的库支持而受到广泛欢迎。Python 3是当前的主流版本,推荐使用Python 3.x进行爬虫开发。

2.2 安装步骤

Windows 环境
  1. 下载Python

    • 前往Python官网下载适合Windows的最新版本安装包(64位或32位)。
  2. 执行安装

    • 双击下载的安装包,在安装界面勾选“Add Python to PATH”,然后点击“Install Now”进行安装。
  3. 验证安装

    • 打开命令提示符(CMD),输入以下命令:
      python --version
      
    • 如果显示Python的版本号,即表示安装成功。
macOS 环境
  1. 使用Homebrew安装

    • 打开终端,输入以下命令:
      /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
      brew install python
      
  2. 验证安装

    • 输入以下命令检查安装:
      python3 --version
      
Linux 环境
  1. 使用包管理器安装

    • 对于Debian/Ubuntu系统:
      sudo apt update
      sudo apt install python3
      
  2. 验证安装

    • 输入以下命令:
      python3 --version
      

2.3 Python版本管理

在开发多个项目时,版本管理十分重要。推荐使用pyenv来管理Python版本,具体步骤如下:

安装pyenv
  1. 在Linux或macOS上,安装pyenv

    curl https://pyenv.run | bash
    
  2. 将以下内容添加到你的shell配置文件中(如~/.bashrc~/.zshrc):

    export PATH="$HOME/.pyenv/bin:$PATH"
    eval "$(pyenv init --path)"
    eval "$(pyenv init -)"
    eval "$(pyenv virtualenv-init -)"
    
  3. 重启终端。

使用pyenv安装Python
pyenv install 3.x.x  # 替换为具体版本号
pyenv global 3.x.x

3. 配置虚拟环境

3.1 什么是虚拟环境

虚拟环境是一个独立的Python环境,可以为每个项目隔离依赖库,避免不同项目间的库版本冲突。

3.2 创建虚拟环境

使用venv模块轻松创建虚拟环境。以下是步骤:

创建虚拟环境
  1. 打开命令提示符或终端,选择项目目录。
  2. 输入以下命令创建虚拟环境:
    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. 安装必要的库

爬虫常用的库主要包括:requestsBeautifulSouplxml、和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

  1. 在JetBrains官网下载PyCharm Community版。
  2. 安装并启动PyCharm。
  3. 创建新项目,选择Python解释器为刚才创建的虚拟环境。

5.3 安装和使用VS Code

  1. 在Visual Studio Code官网下载并安装。
  2. 安装Python扩展,支持Python语言的编辑和调试,使用命令面板(Ctrl + Shift + P)执行Python: Select Interpreter选择虚拟环境。

6. 示例代码:简单爬虫

在确保环境准备好后,下面提供一个简单的爬虫示例:

6.1 示例代码

以下代码示例演示如何使用requestsBeautifulSoup抓取网页的标题和所有超链接。

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)//从队头出来&#xff0c;再次回到队尾{int idq.front();//记录出去的编号 q.pop();…...

算法笔记(十)——队列+宽搜

文章目录 N 叉数的层序遍历二叉树的锯齿形层序遍历二叉树最大宽度在每个树行中找最大值 BFS是图上最基础、最重要的搜索算法之一&#xff1b; 每次都尝试访问同一层的节点如果同一层都访问完了&#xff0c;再访问下一层 BFS基本框架 void bfs(起始点) {将起始点放入队列中;标记…...

webpack配置全面讲解【完整篇】

文章目录 前言webpack 核心包&#xff1a;配置文件导出三种方式&#xff1a;在线配置 webpack配置文件解析&#xff1a;入口&#xff08;Entry&#xff09;&#xff1a;输出&#xff08;Output&#xff09;&#xff1a;加载器&#xff08;Loaders&#xff09;&#xff1a;插件&…...

十、kotlin的协程

协程 基本概念定义组成挂起和恢复结构化并发协程构建器作用域构建器挂起函数阻塞与非阻塞runBlocking全局协程像守护线程 Job的生命周期 常用函数延时和等待启动和取消启动取消 暂停 协程启动调度器启动方式启动模式线程上下文继承的定义继承的公式 协程取消与超时取消挂起点取…...

vscode qt 最新开发环境配置, 基于最新插件 Qt All Extensions Pack

qt 之前发布了vscode qt offical ,但是最新更新中将其升级改为了几个不同的插件&#xff0c;功能更强大 1. 前置条件 qt 已安装 2. 插件安装 打开vscode 插件安装&#xff0c;搜索qt 会看到很多qt插件&#xff0c;直接选择Qt All Extensions Pack 安装 会安装qt环境所需的…...

【MySQL】Ubuntu环境下MySQL的安装与卸载

目录 1.MYSQL的安装 2.MySQL的登录 3.MYSQL的卸载 4.设置配置文件 1.MYSQL的安装 首先我们要看看我们环境里面有没有已经安装好的MySQL 我们发现是默认是没有的。 我们还可以通过下面这个命令来确认有没有mysql的安装包 首先我们得知道我们当前的系统版本是什么 lsb_…...

C# StringBuilder类:高效构建和修改字符串的利器

C# 中的 StringBuilder 类是一个可变的字符序列&#xff0c;用于高效地构建和修改字符串。与字符串&#xff08;string&#xff09;不同&#xff0c;字符串在 C# 中是不可变的&#xff0c;这意味着每次修改字符串&#xff08;如拼接、替换等操作&#xff09;时&#xff0c;都会…...

AVL平衡树(AVL Tree)

**场景&#xff1a;课堂讨论** --- **小明&#xff08;ESFP学生&#xff09;**&#xff1a;张老师&#xff0c;为什么AVL树&#xff08;AVL Tree&#xff09;中的旋转操作这么重要&#xff1f;感觉只是节点的移动&#xff0c;有没有什么实际意义&#xff1f; **张老师&#…...

【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&#xff0c;包含两个参数, 函数的作用…...

Pikachu-File Inclusion-远程文件包含

远程文件包含漏洞 是指能够包含远程服务器上的文件并执行。由于远程服务器的文件是我们可控的&#xff0c;因此漏洞一旦存在&#xff0c;危害性会很大。但远程文件包含漏洞的利用条件较为苛刻&#xff1b;因此&#xff0c;在web应用系统的功能设计上尽量不要让前端用户直接传变…...

TIM(Timer)定时器的原理

一、介绍 硬件定时器的工作原理基于时钟信号源提供稳定的时钟信号作为计时器的基准。计数器从预设值开始计数&#xff0c;每当时钟信号到达时计数器递增。当计数器达到预设值时&#xff0c;定时器会触发一个中断信号通知中断控制器处理相应的中断服务程序。在中断服务程序中&a…...

Microsoft Visual Studio有多油饼

#1 Microsoft Visual Studio C 2023&#xff1a; 必须安装在C盘 为啥&#xff1f; 安其他盘能亖啊&#xff1f; 真有病 #2 Microsoft Visual Studio C 2013&#xff1a; 每个硬盘必须都腾出至少8个G的空间 不是我安在这个盘不就是为了其他盘没空间吗&#xff1f; 合着…...

Golang | Leetcode Golang题解之第452题用最少数量的箭引爆气球

题目&#xff1a; 题解&#xff1a; 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模块)

我们的目标是&#xff1a;通过这一套资料学习下来&#xff0c;可以熟练掌握python基础&#xff0c;然后结合经典实例、实践相结合&#xff0c;使我们完全掌握python&#xff0c;并做到独立完成项目开发的能力。 上篇文章我们讨论了turtle库绘制图画操作的相关知识。今天学习一下…...

“米哈游悄然布局未来科技:入股星海图,共绘具身智能机器人新篇章“

米哈游悄然入股具身智能机器人公司:技术布局与未来展望 近日,米哈游阿尔戈科技有限公司宣布入股具身智能机器人公司星海图,这一消息在行业内引起了广泛关注。米哈游,这家以游戏开发而闻名的企业,近年来正逐步扩大其在人工智能和新兴科技领域的投资布局,此次入股星海图正是…...

基于spring boot的篮球论坛系统

作者&#xff1a;计算机搬砖家 开发技术&#xff1a;SpringBoot、php、Python、小程序、SSM、Vue、MySQL、JSP、ElementUI等&#xff0c;“文末源码”。 专栏推荐&#xff1a;SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;Java精选实战项…...

华夏ERP账号密码泄露漏洞

漏洞描述 华夏ERP账号密码泄露漏洞 漏洞复现 FOFA "jshERP-boot" POC IP/jshERP-boot/user/getAllList;.ico...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)

HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)

概述 在 Swift 开发语言中&#xff0c;各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过&#xff0c;在涉及到多个子类派生于基类进行多态模拟的场景下&#xff0c;…...

江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命

在华东塑料包装行业面临限塑令深度调整的背景下&#xff0c;江苏艾立泰以一场跨国资源接力的创新实践&#xff0c;重新定义了绿色供应链的边界。 跨国回收网络&#xff1a;废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点&#xff0c;将海外废弃包装箱通过标准…...

python如何将word的doc另存为docx

将 DOCX 文件另存为 DOCX 格式&#xff08;Python 实现&#xff09; 在 Python 中&#xff0c;你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是&#xff0c;.doc 是旧的 Word 格式&#xff0c;而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...

Matlab | matlab常用命令总结

常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...

UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)

UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中&#xff0c;UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化&#xf…...

Python 实现 Web 静态服务器(HTTP 协议)

目录 一、在本地启动 HTTP 服务器1. Windows 下安装 node.js1&#xff09;下载安装包2&#xff09;配置环境变量3&#xff09;安装镜像4&#xff09;node.js 的常用命令 2. 安装 http-server 服务3. 使用 http-server 开启服务1&#xff09;使用 http-server2&#xff09;详解 …...

OD 算法题 B卷【正整数到Excel编号之间的转换】

文章目录 正整数到Excel编号之间的转换 正整数到Excel编号之间的转换 excel的列编号是这样的&#xff1a;a b c … z aa ab ac… az ba bb bc…yz za zb zc …zz aaa aab aac…; 分别代表以下的编号1 2 3 … 26 27 28 29… 52 53 54 55… 676 677 678 679 … 702 703 704 705;…...

【C++】纯虚函数类外可以写实现吗?

1. 答案 先说答案&#xff0c;可以。 2.代码测试 .h头文件 #include <iostream> #include <string>// 抽象基类 class AbstractBase { public:AbstractBase() default;virtual ~AbstractBase() default; // 默认析构函数public:virtual int PureVirtualFunct…...

pycharm 设置环境出错

pycharm 设置环境出错 pycharm 新建项目&#xff0c;设置虚拟环境&#xff0c;出错 pycharm 出错 Cannot open Local Failed to start [powershell.exe, -NoExit, -ExecutionPolicy, Bypass, -File, C:\Program Files\JetBrains\PyCharm 2024.1.3\plugins\terminal\shell-int…...