Python学习:datetime与urllib模块详解

需积分: 50 6 下载量 195 浏览量 更新于2024-09-09 收藏 371KB PDF 举报
"这篇最新的Python学习笔记5主要涵盖了Python中处理日期和时间的datetime模块以及网络请求的urllib库。适合Python初学者进行学习和复习。" 在Python编程中,处理日期和时间的操作是非常常见的任务。datetime模块是Python内建的标准库,提供了丰富的功能来处理日期和时间。以下是对这个模块的深入讲解: 1. 获取当前日期和时间:使用`datetime.now()`函数可以获取系统当前的日期和时间,返回的对象是一个datetime实例。例如: ```python from datetime import datetime now = datetime.now() # 获取当前datetime对象 ``` 2. 字符串转datetime:如果日期和时间是以字符串的形式存在,我们可以使用`strptime()`函数将字符串转换为datetime对象。例如,将"2015-6-11 8:19:59"转换为datetime: ```python cday = datetime.strptime('2015-6-11 8:19:59', '%Y-%m-%d %H:%M:%S') ``` 这里的'%Y-%m-%d %H:%M:%S'是日期和时间的格式化字符串。 3. datetime转字符串:反过来,若需要将datetime对象转换为字符串显示,可以使用`strftime()`方法,同样需要提供一个格式化字符串。例如: ```python now = datetime.now() print(now.strftime('%a,%b%d%H:%M')) # 输出格式化的日期和时间字符串 ``` 4. datetime的加减运算:利用`timedelta`类,可以对datetime对象进行加减操作,比如增加或减少天数、小时等。例如,增加2天12小时: ```python from datetime import datetime, timedelta now = datetime.now() new_time = now + timedelta(days=2, hours=12) # 加上2天12小时 ``` 接下来,我们转向Python的网络请求库urllib。urllib提供了多种功能,帮助开发者方便地操作URL,包括发送HTTP请求。 1. urllib.request模块:这个模块允许我们向指定URL发送GET请求并获取响应内容。例如,要抓取豆瓣API中关于书本ID为2129650的信息: ```python import urllib.request url = 'https://api.douban.com/v2/book/2129650' response = urllib.request.urlopen(url) # 发送GET请求 content = response.read().decode() # 获取响应内容,解码为字符串 ``` 这会返回一个HTTP响应,包含请求的数据。 2. 模拟浏览器请求:在实际网络请求中,有时我们需要伪装成浏览器以避免被服务器识别为机器人。这可以通过设置`User-Agent`头来实现。在urllib.request.Request对象中添加headers参数即可: ```python 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'} req = urllib.request.Request(url, headers=headers) response = urllib.request.urlopen(req) ``` 这样,服务器会认为请求来自于指定的浏览器。 这些基础知识对于Python初学者来说是非常重要的,理解和掌握它们能够帮助你更好地处理日期和时间数据,以及进行简单的网络数据获取。在实际编程中,这些技能会被频繁使用。