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

Leaflet坐标系实战:从设置到动态切换的完整指南

1. Leaflet坐标系基础概念解析 第一次接触Leaflet坐标系时&#xff0c;我也被各种专业术语搞得晕头转向。简单来说&#xff0c;坐标系就是用来确定地图上每个点位置的规则系统。就像我们在地球上使用经纬度定位一样&#xff0c;数字地图也需要明确的坐标参考。 Leaflet默认支持…...

【深度解析】CODrone:如何用高分辨率多视角数据重塑无人机旋转目标检测基准

1. CODrone数据集为何能重新定义旋转目标检测标准 当无人机在城市上空盘旋时&#xff0c;它看到的不是我们熟悉的平视视角。倾斜的建筑物、变形的车辆轮廓、微小的行人身影——这些才是无人机视觉感知的真实挑战。传统数据集用"上帝视角"的俯拍图像训练出的算法&…...

QT实战:用QScrollArea+QListWidget复刻迅雷设置界面(附完整源码)

QT实战&#xff1a;用QScrollAreaQListWidget复刻迅雷设置界面&#xff08;附完整源码&#xff09; 在桌面应用开发中&#xff0c;设置界面的设计往往考验着开发者对布局和交互逻辑的掌控能力。迅雷作为一款经典的下载工具&#xff0c;其设置界面以清晰的导航结构和流畅的滚动体…...

MogFace-large项目GitHub Actions CI/CD流水线构建教程

MogFace-large项目GitHub Actions CI/CD流水线构建教程 最近在折腾一个基于MogFace-large的人脸检测项目&#xff0c;每次手动测试、打包、部署&#xff0c;流程繁琐不说&#xff0c;还容易出错。团队协作时&#xff0c;代码合并后谁去跑测试、谁去更新镜像&#xff0c;也是个…...

贝叶斯分位数回归:超越均值的数据分析方法

贝叶斯分位数回归&#xff1a;超越均值的数据分析方法 【免费下载链接】pymc Python 中的贝叶斯建模和概率编程。 项目地址: https://gitcode.com/GitHub_Trending/py/pymc 问题-方案-验证-应用四象限框架 问题&#xff1a;均值回归的业务痛点 在数据分析实践中&#…...

LeetCodehot100-25 K 个一组翻转链表

class Solution { public:ListNode* reverseKGroup(ListNode* head, int k) {if (head nullptr || k 1) return head;ListNode dummy(0);dummy.next head;ListNode* prev &dummy; // 指向待反转组的前一个节点while (true) {// 检查剩余节点是否够k个ListNode* tail …...

从零开始优化接口性能:QPS、TPS、OTPS、TP99的实战指南

从零开始优化接口性能&#xff1a;QPS、TPS、OTPS、TP99的实战指南 当你的电商系统在秒杀活动中突然崩溃&#xff0c;或是聊天机器人回复速度慢到用户流失时&#xff0c;性能指标就不再是枯燥的数字&#xff0c;而是决定业务存亡的关键。我曾经历过一次惨痛的教训&#xff1a;某…...

突破限制:跨平台VMware macOS虚拟机部署全指南——非苹果硬件的macOS体验方案

突破限制&#xff1a;跨平台VMware macOS虚拟机部署全指南——非苹果硬件的macOS体验方案 【免费下载链接】unlocker VMware macOS utilities 项目地址: https://gitcode.com/gh_mirrors/unl/unlocker Unlocker是一款针对VMware Workstation和Player的开源补丁工具&…...

LM339比较器实战:手把手教你搭建电池电压监测电路(附电路图)

LM339比较器实战&#xff1a;手把手教你搭建电池电压监测电路&#xff08;附电路图&#xff09; 1. 为什么选择LM339作为电池监测核心器件&#xff1f; 在电子设计领域&#xff0c;电压监测是保障设备稳定运行的基础功能之一。LM339作为一款经典的四路电压比较器&#xff0c;…...

中国象棋AlphaZero:从零构建强化学习象棋AI的完整指南

中国象棋AlphaZero&#xff1a;从零构建强化学习象棋AI的完整指南 【免费下载链接】ChineseChess-AlphaZero Implement AlphaZero/AlphaGo Zero methods on Chinese chess. 项目地址: https://gitcode.com/gh_mirrors/ch/ChineseChess-AlphaZero 中国象棋AlphaZero是一个…...