当前位置: 首页 > 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...

生成xcframework

打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式&#xff0c;可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...

【Python】 -- 趣味代码 - 小恐龙游戏

文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...

【kafka】Golang实现分布式Masscan任务调度系统

要求&#xff1a; 输出两个程序&#xff0c;一个命令行程序&#xff08;命令行参数用flag&#xff09;和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽&#xff0c;然后将消息推送到kafka里面。 服务端程序&#xff1a; 从kafka消费者接收…...

2024年赣州旅游投资集团社会招聘笔试真

2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...

1.3 VSCode安装与环境配置

进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件&#xff0c;然后打开终端&#xff0c;进入下载文件夹&#xff0c;键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...

postgresql|数据库|只读用户的创建和删除(备忘)

CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...

解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错

出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上&#xff0c;所以报错&#xff0c;到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本&#xff0c;cu、torch、cp 的版本一定要对…...

Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)

在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马&#xff08;服务器方面的&#xff09;的原理&#xff0c;连接&#xff0c;以及各种木马及连接工具的分享 文件木马&#xff1a;https://w…...

SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题

分区配置 (ptab.json) img 属性介绍&#xff1a; img 属性指定分区存放的 image 名称&#xff0c;指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件&#xff0c;则以 proj_name:binary_name 格式指定文件名&#xff0c; proj_name 为工程 名&…...

STM32HAL库USART源代码解析及应用

STM32HAL库USART源代码解析 前言STM32CubeIDE配置串口USART和UART的选择使用模式参数设置GPIO配置DMA配置中断配置硬件流控制使能生成代码解析和使用方法串口初始化__UART_HandleTypeDef结构体浅析HAL库代码实际使用方法使用轮询方式发送使用轮询方式接收使用中断方式发送使用中…...