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

python爬虫报错信息解决方法

 今天遇到了这样一条报错:

opt/conda/envs/python35-paddle120-env/bin/python /home/aistudio/work/main.py aistudio@jupyter-10415006-8838159:~$ /opt/conda/envs/python35-paddle120-env/bin/python /home/aistudio/work/main.py Traceback (most recent call last): File "/home/aistudio/work/main.py", line 43, in <module> spider.run() File "/home/aistudio/work/main.py", line 30, in run books = DataParser.parse_book_page(html) File "/home/aistudio/work/parser.py", line 9, in parse_book_page soup = BeautifulSoup(html, 'lxml') File "/opt/conda/envs/python35-paddle120-env/lib/python3.10/site-packages/bs4/__init__.py", line 364, in __init__ raise FeatureNotFound( bs4.exceptions.FeatureNotFound: Couldn't find a tree builder with the features you requested: lxml. Do you need to install a parser library? aistudio@jupyter-10415006-8838159:~$  

错误原因分析

该错误表明BeautifulSoup无法找到lxml解析器。当代码中使用以下语句时:

soup = BeautifulSoup(html, 'lxml')

需要系统中已安装lxml库,而当前环境中缺少该依赖项。(是的我忘记装了)


解决方案(任选其一)

方案一:安装lxml库(推荐)
# 进入当前Python环境
source activate python35-paddle120-env

# 安装lxml(选择以下任意一种方式)
pip install lxml         # 使用pip安装
conda install lxml       # 使用conda安装
方案二:修改解析器类型(这是我看到的第二种方法,试了以下感觉没第一种好)

将代码中的lxml替换为Python内置的html.parser

# 修改parser.py文件
soup = BeautifulSoup(html, 'html.parser')  # 替换原代码中的'lxml'

验证步骤

  1. 安装后验证
python -c "import lxml; print('lxml版本:', lxml.__version__)"
# 成功输出应显示版本号

如下图所示:

  1. 重新执行主程序:
python /home/aistudio/work/main.py

技术原理说明

解析器安装需求速度容错性依赖项
html.parserPython内置无需安装一般
lxml需单独安装libxml2
html5lib需单独安装极高html5lib

如果还是报错的话

可考虑以下优化:

  1. 创建纯净虚拟环境
    conda create -n crawler_env python=3.8
    conda activate crawler_env
    pip install requests beautifulsoup4 lxml
  2. 使用Docker容器化部署
    FROM python:3.8-slim
    RUN pip install requests beautifulsoup4 lxml
    COPY . /app
    WORKDIR /app
    CMD ["python", "main.py"]

相关文章:

  • C++22——哈希
  • 基于Springboot博物馆文博资源库系统【附源码】
  • 传输层协议TCP
  • Python从0到100(八十九):Resnet、LSTM、Shufflenet、CNN四种网络分析及对比
  • linux学习笔记3
  • Spring IoC
  • kafka consumer 手动 ack
  • 详解直方图均衡化
  • Java最新面试题(全网最全、最细、附答案)
  • mysql 全方位安装教程
  • jvm内存区域、调优参数,堆区栈区分别存什么
  • Buildroot学习笔记
  • doris:Hudi Catalog
  • Windows逆向工程入门之MASM字符处理机制
  • 11天 -- Redis 中跳表的实现原理是什么?Redis 的 hash 是什么?Redis Zset 的实现原理是什么?
  • Linux小程序-进度条
  • 《基于鸿蒙系统的类目标签AI功能开发实践》
  • 《Ollama官网可以下载使用的50个AI模型及介绍》:此文为AI自动生成
  • 机器学习:线性回归,梯度下降,多元线性回归
  • 工程化与框架系列(13)--虚拟DOM实现
  • 网站有什么/百度推广开户费用
  • 北京高端网站建设制作设计/成都推广团队
  • 长春个人做网站/搜狗搜索引擎网页
  • 扶贫基金会网站建设是哪家公司/江门百度seo公司
  • 做网站还有前景吗/公司网站的推广方案
  • 北京网站建设龙鹏/线下推广有哪些渠道