简易 Python 爬虫实现,10min可完成带效果源码

目录

准备工作

编写爬虫代码

运行爬虫

查看结果

遇到的问题及解决

总结


前言和效果

本文记录了使用 Python 实现一个简单网页爬虫的过程,目标是爬取 quotes.toscrape.com 的名言和作者,并将结果保存到文本文件。以下是完整步骤,包含环境配置、依赖安装和代码运行。
网站截图:

爬取到的内容截图如下:

准备工作
  1. 激活 Anaconda 虚拟环境

    我的 Python 环境基于 Anaconda,使用的虚拟环境是 SRCNN(路径:D:\Anaconda\envs\SRCNN)。首先,需要激活该环境:

    conda activate SRCNN

运行后,命令行前缀变为 (SRCNN),表示成功切换到虚拟环境。

  1. 安装依赖包

    爬虫需要两个库:requests(发送 HTTP 请求)和 beautifulsoup4(解析 HTML)。在 SRCNN 环境中安装:

    conda install requests beautifulsoup4

安装报错了,原因是未关闭科学上网,后关闭了这两个包就装好了。报错如下:
关闭科学上网后重新安装

安装完成后,命令行显示安装成功的提示。

  1. 验证安装

    为确保 beautifulsoup4 正确安装在 SRCNN 环境中,运行以下命令检查:

    pip show beautifulsoup4

输出显示模块版本为 4.12.2,安装路径为 D:\Anaconda\envs\SRCNN\Lib\site-packages,确认安装正确。

编写爬虫代码,完整代码:

以下是爬虫代码(pac.py),用于爬取 quotes.toscrape.com 的名言和作者,并保存到 quotes.txt

复制代码
import requests
from bs4 import BeautifulSoup

# 目标网页
url = "http://quotes.toscrape.com/"

try:
    # 发送 HTTP 请求
    response = requests.get(url)
    response.raise_for_status()  # 检查请求是否成功

    # 解析 HTML
    soup = BeautifulSoup(response.text, "html.parser")

    # 提取名言和作者
    quotes = soup.find_all("div", class_="quote")
    results = []

    for quote in quotes:
        text = quote.find("span", class_="text").get_text()
        author = quote.find("small", class_="author").get_text()
        results.append({"quote": text, "author": author})

    # 保存到文件
    with open("quotes.txt", "w", encoding="utf-8") as f:
        for item in results:
            f.write(f"Quote: {item['quote']}\nAuthor: {item['author']}\n\n")

    print("爬取完成,结果已保存到 quotes.txt")

except requests.RequestException as e:
    print(f"请求错误: {e}")
except Exception as e:
    print(f"发生错误: {e}")

代码说明:

  • 使用 requests.get 获取网页内容。

  • BeautifulSoup 解析 HTML,提取 class="quote"<div> 元素。

  • 提取每条名言(class="text")和作者(class="author"),保存到 quotes.txt

目标网站:
Quotes to Scrape

运行爬虫

SRCNN 环境中运行代码:

复制代码
D:\Anaconda\envs\SRCNN\python.exe D:/YAN/pythonProject/PaChong/pac.py

运行后,程序输出"爬取完成,结果已保存到 quotes.txt",表示成功。

查看结果

爬取结果保存在 D:/YAN/pythonProject/PaChong/quotes.txt,内容为每条名言及其作者。

遇到的问题及解决

最初运行时,提示 ModuleNotFoundError: No module named 'bs4',因为 beautifulsoup4 安装在 Anaconda 全局环境(D:\Anaconda\Lib\site-packages)而非 SRCNN 环境。解决方法是激活 SRCNN 环境并重新安装:

复制代码
conda activate SRCNN
conda install beautifulsoup4

此外,确认 requests 已安装,避免类似错误。

总结

通过以上步骤,我成功实现了一个简单的 Python 爬虫:

  • 激活 SRCNN 虚拟环境。

  • 安装 requestsbeautifulsoup4

  • 编写并运行爬虫代码,爬取名言并保存到文本文件。

这个过程熟悉了 Anaconda 虚拟环境管理和爬虫开发,适合初学者参考。未来可扩展功能,如处理多页爬取或应对反爬机制。

相关推荐
爱心发电丶8 分钟前
WePush 一款基于模拟点击实现的微信消息推送机器人,安全稳定不封号
python
矛取矛求10 分钟前
STL C++详解——priority_queue的使用和模拟实现 堆的使用
开发语言·c++
Conan х30 分钟前
进阶篇 第 6 篇:时间序列遇见机器学习与深度学习
人工智能·python·深度学习·算法·机器学习·数据分析
Non importa39 分钟前
【C++】新手入门指南(下)
java·开发语言·c++·算法·学习方法
程序员秘密基地1 小时前
基于pycharm,python,django,pytorch,mysql,深度学习,模型训练,在线植物,花卉分类系统
pytorch·python·深度学习·神经网络·django
lixy5791 小时前
深度学习3.1 线性回归
人工智能·python·深度学习·线性回归
pp-周子晗(努力赶上课程进度版)1 小时前
【C++】特殊类的设计、单例模式以及Cpp类型转换
开发语言·c++
海洋与大气科学1 小时前
【matlab|python】矢量棍棒图应用场景和代码
开发语言·python·matlab
中国lanwp2 小时前
Anaconda 与 Miniconda 的差异详解
python
菜鸟学编程o2 小时前
C++:继承
开发语言·c++