Python学习:datetime与urllib模块详解
需积分: 50 154 浏览量
更新于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初学者来说是非常重要的,理解和掌握它们能够帮助你更好地处理日期和时间数据,以及进行简单的网络数据获取。在实际编程中,这些技能会被频繁使用。
2018-07-07 上传
2018-07-07 上传
2018-07-07 上传
2019-04-16 上传
peter_derary66
- 粉丝: 3
- 资源: 10
最新资源
- StarModAPI: StarMade 模组开发的Java API工具包
- PHP疫情上报管理系统开发与数据库实现详解
- 中秋节特献:明月祝福Flash动画素材
- Java GUI界面RPi-kee_Pilot:RPi-kee专用控制工具
- 电脑端APK信息提取工具APK Messenger功能介绍
- 探索矩阵连乘算法在C++中的应用
- Airflow教程:入门到工作流程创建
- MIP在Matlab中实现黑白图像处理的开源解决方案
- 图像切割感知分组框架:Matlab中的PG-framework实现
- 计算机科学中的经典算法与应用场景解析
- MiniZinc 编译器:高效解决离散优化问题
- MATLAB工具用于测量静态接触角的开源代码解析
- Python网络服务器项目合作指南
- 使用Matlab实现基础水族馆鱼类跟踪的代码解析
- vagga:基于Rust的用户空间容器化开发工具
- PPAP: 多语言支持的PHP邮政地址解析器项目