python异常处理、爬虫介绍、模块(module)的导入及爬虫准备工作

本文介绍了Python的错误与异常处理,包括异常简介和捕获多个异常的方法。接着,文章讲解了Python爬虫的基础知识,涵盖爬虫任务介绍、基本流程、编码规范和模块导入。文章提供了爬取豆瓣电影Top250信息的场景,指导读者理解爬虫的工作原理和步骤,并强调了异常处理和代码规范的重要性。
部署运行你感兴趣的模型镜像
先看后赞,养成习惯。点赞收藏,人生辉煌!

么么哒

1 错误与异常

1.1异常简介

看如下示例发生异常

print("----test-----1")
f = open("123.txt","r") #用只读模式打开了一个不存在的文件,报错
print("----test-----2") #这句代码不会被执行

运行结果如下:
运行结果
说明:打开一个不存在的文件时,当找不到文件时,就会抛出给我们一个IOError类型的错误
异常类型想要被捕获,需要一致,看如下示例发生异常

try:
    print(num)
except IOError:   #异常类型想要被捕获,需要一致

    print("产生错误了")  #NameError: name 'num' is not defined

运行结果如下:
在这里插入图片描述

try:
    print(num)
except NameError:
    print("产生错误了")  #NameError: name 'num' is not defined

运行结果如下:

运行结果
同时捕获

try:
    print("----test-----1")
    f = open("123.txt","r")
    print("----test-----2")
    print(num)

except (NameError,IOError):
    print("产生错误了")  #NameError: name 'num' is not defined

运行结果如下:
在这里插入图片描述

如果想知道是哪个类型错误,并且打印出来,该怎么做?

#获取错误描述
try:
    print("----test-----1")
    f = open("123.txt","r")
    print("----test-----2")
    print(num)

except (NameError,IOError) as result: #将可能产生的所有异常类型,都放到下面的小括号中
    print("产生错误了")  #NameError: name 'num' is not defined
    print(result)

运行结果如下:
在这里插入图片描述
此时,我们修改f = open(“test.txt”,“r”),test.txt是我们已经存在的文件

# 捕获所有的异常 Exception
try:
    print("----test-----1")
    f = open("test.txt","r")
    print("----test-----2")
    print(num)

except Exception as result: #将可能产生的所有异常类型,都放到下面的小括号中
    print("产生错误了")  #NameError: name 'num' is not defined
    print(result)

在这里插入图片描述

1.2 作业:

1.应用文件操作的相关知识,通过Python新建一个文件gushi.txt,选择一首古诗写入文件中
2.另外写一个函数,读取指定文件gushi.txt,将内容复制到copy.txt中,并在控制台输出“复制完毕"。
3.提示:分别定义两个函数,完成读文件和写文件的操作
尽可能完善代码,添加异常处理。

f = open("gushi.txt","w")
f.write("劝君莫惜金缕衣,劝君惜取少年时。")
f.write("\n")
f.write("花开堪折直须折,莫待无花空折枝。")
f.close()

def CopyGuShi():
    f = open("gushi.txt",'r')
    c = open("copy.txt",'w')
    contents = f.readlines()
    for content in contents:
        c.write(content)
    c.close()
    print("复制完毕......")
CopyGuShi()'''

def WriteFile(x):
    try:
        f = open("x","w")
        f.write(input("请输入写入文件内容"))
    except Exception as result:
        print(result)
def ReadFile(x):
    f = open("x",'r')
    contents =  f.readlines()
    for content in contents:
        print(content)
WriteFile('gushi.txt')
ReadFile("gushi.txt")

2 python爬虫

2.1 任务介绍

需求分析:爬取豆瓣电影ToP250的基本信息,包括电影的名称、豆瓣评分、评价数、电影概况、电影链接等。

https://movie.douban.com/top250
在这里插入图片描述

2.2 爬虫初始

什么是爬虫
  网络爬虫,是按照一定规则自动抓取互联网信息的程序或者脚本。由于互联网数据的多样性和资源的有限性,根据用户需求定向抓取相关网页并分析已成为如今主流的爬取策略。
爬虫可以做什么
  你可以爬取妹子的图片,爬取自己想看的视频,只要你能通过浏览器访问的数据都可以通过爬虫获取
爬虫的本质是什么
  模拟浏览器打开网页,获取网页中我们想要的那部分数据。

2.3 基本流程

准备工作
  通过浏览器查看分析目标网页,学习编程基础规范。
获取数据
  通过HTTP库向目标站点发起请求,请求可以包含额外的header等信息,如果服务器能正常响应,会得到一个Response,便是所要获取的页面内容。
解析内容
  得到的内容可能是HTML、json等格式,可以用页面解析库、正则表达式等进行解析
保存数据
  保存形式多样,可以存为文本,也可以保存到数据库,或者保存特定格式的文件。

2.4 编码规范

  1、一般python程序第一行需要加入#-- coding:utf-8--或者#coding = utf-8这样可以在代码中包含中文

  2、在python中,使用函数实现单一功能或相关联功能的代码段,可以提高可读性和代码重复利用率,函数代码块以def关键字开头后接空格、函数标识符名称、圆括号()、冒号:,括号中可以传入参数,函数段缩进(Tab或四个空格,只能任选一种),return用于结束函数,可以返回一个值,也可以不带任何表达式(表示返回None),如下所示:

def 函数标识符名称(可填形参):
	return ()

  3、python文件中可以加入if__name__==”main”:

  4、python使用#添加注释,说明代码(段)的作用

2.5 引入模块

  模块(module)用来从逻辑上组织python代码(变量、函数、类),本质就是py文件,提高代码的可维护性。python使用import来导入模块
  模块module:一般情况下,是一个以.py为后缀的文件

如何引入模块点击链接详细查看2.3章节

如下示例是接下来爬虫要用到的模块
在这里插入图片描述
可以看见有的模块是没有的需要我们下下载安装,安装方式有两种:
方式一:
1、点击下方Terminal,就会出现像命令提示符一样的界面(win+R键,输入cmd同样也会出现)
在这里插入图片描述
2、如下命令提示符一样的界面,输入python,如下图,我们输入print(“hello”)同样也输出了‘hello‘
在这里插入图片描述
3.比如我们需要导入bs4包,然后输入pip install bs4就可下载。
方式二:
1、如下图,xlwt是不存在的,需要我们导入,此时我们打开File,点击Settings
在这里插入图片描述
2、此时xlwt包是不存在的,点击右边的加号,
在这里插入图片描述
3、找到xlwt点击install package
在这里插入图片描述
4、网速好等几秒就会安装好,如下图
在这里插入图片描述
5、此时导入的xlwt包不报错了,如下图:
其他的包如法炮制

在这里插入图片描述

您可能感兴趣的与本文相关的镜像

Python3.10

Python3.10

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值