**************************************************************************************************************
author:keyinfo
date:2024-09-07 15:47
**************************************************************************************************************
此部分为初步实现网页信息捕获和错误信息捕获
下面是我对AI相关提问
问:python3 -m venv filename
这是在 Python 中创建虚拟环境的命令。
“python3 -m venv filename” 的作用是创建一个名为 “filename” 的独立的 Python 环境。虚拟环境有很多好处呢。
一方面,它可以让你在不同的项目中使用不同版本的 Python 库,避免了库之间的冲突。比如,一个项目可能需要某个特定版本的库,而另一个项目可能需要不同版本的同一个库。如果没有虚拟环境,这些项目可能会相互干扰。
另一方面,虚拟环境可以让你的项目更加可移植。你可以把包含虚拟环境的项目文件夹复制到另一台电脑上,只要那台电脑上安装了 Python,就可以直接运行你的项目,而不需要担心缺少某些库或者库的版本不兼容。
创建虚拟环境后,你需要激活它才能使用。在不同的操作系统上激活的方式略有不同。一般来说,在命令行中进入虚拟环境的文件夹,然后执行相应的激活命令即可。
问:这个命令和用sorce命令启动新的虚拟环境有什么区别
“python3 -m venv filename” 和使用 “source” 命令启动虚拟环境有以下一些区别:
一、创建方式
- “python3 -m venv filename” 是通过 Python 的内置模块 venv 来创建一个全新的虚拟环境。它会在指定的 “filename” 目录下生成一套独立的 Python 解释器副本以及相关的库和脚本。
- 通常情况下,“source” 命令不是用于创建虚拟环境,而是用于激活已经存在的虚拟环境。比如在 Linux 或 macOS 系统中,激活虚拟环境的命令通常是 “source venv/bin/activate”(假设虚拟环境名为 venv),Windows下在cmd界面运行Scripts目录下的activate.bat文件。
二、功能特点
- 使用 “python3 -m venv filename” 创建的虚拟环境相对干净和独立,它只包含了基本的 Python 标准库,不包含其他额外的第三方库,你可以根据项目需求逐个安装所需的库,这样可以更好地控制项目的依赖关系。
- 当使用 “source” 命令激活虚拟环境后,你的命令行提示符会发生变化,以提示你当前处于虚拟环境中。在这个虚拟环境中安装的库和执行的命令只会影响这个特定的环境,不会干扰系统全局的 Python 环境或其他虚拟环境。
三、适用场景
- “python3 -m venv filename” 适用于开始一个新的项目,或者当你需要一个完全独立的、不受其他项目影响的开发环境时。
- “source” 命令则在你已经有一个创建好的虚拟环境,并且需要在这个环境中进行开发、测试或运行项目时使用。
为避免环境混乱,我们可以创建虚拟环境进行安装依赖库。LINUX和mac有点特殊是使用source进行激活环境,但是在Windows下是在cmd界面运行脚本文件
下面是代码详情:
# 核心代码段
try:
req = Request('https://baidu.com', headers=headers)
HTML = urlopen(req)
context = BeautifulSoup(HTML.read().decode("UTF-8"), “html.parser”)
except HTTPError as error:
print("Worked!!!! Has a Errror!!!OMG")
print(error)
except URLError as error:
print("Worked!!!! Has a Errror!!!OMG")
print(error)
else:
print("Worked!!!! No Errror!!!OMG")
print(context.title)
# 导入所需的库
from urllib.request import urlopen, Request
from urllib.error import HTTPError
from urllib.error import URLError
from bs4 import BeautifulSoup
# 设置请求头,模拟浏览器访问
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
}
# 尝试发送请求
try:
# 创建请求对象,包含URL和headers
req = Request('https://baidu.com', headers=headers)
# 打开URL并获取响应
HTML = urlopen(req)
# 读取响应内容并解码为字符串
context = BeautifulSoup(HTML.read().decode("UTF-8"), "html.parser")
# 捕获HTTP错误
except HTTPError as error:
# 打印错误信息
print("Worked!!!! Has a Error!!!OMG")
print(error)
# 捕获URL错误
except URLError as error:
# 打印错误信息
print("Worked!!!! Has a Error!!!OMG")
print(error)
# 如果没有错误发生
else:
# 打印成功信息
print("Worked!!!! No Error!!!OMG")
# 打印网页的标题
print(context.title)