Python IDLE利用requests库爬取网页并检测HTTP状态码
需积分: 9 164 浏览量
更新于2024-09-02
收藏 611B TXT 举报
在本篇Python学习笔记中,我们将探讨如何使用Python的requests库进行网页爬取以及如何检测HTTP响应的状态码。首先,让我们熟悉IDLE环境中的基本操作,通过导入requests模块来发送GET请求到指定的URL(例如,百度首页):
```python
import requests
# 发送GET请求
r = requests.get("http://www.baidu.com")
```
在这个代码片段中,`requests.get()`函数接收一个URL作为参数,然后返回一个Response对象。Response对象包含了服务器对请求的响应,包括状态码、编码和实际的HTML文本。状态码是HTTP响应的核心部分,它用三位数字表示请求的结果,200通常意味着成功,而其他值如404表示未找到,500表示服务器错误等。
检测请求状态码的方法是通过访问`r.status_code`属性。例如:
```python
r.status_code # 输出:200 (如果成功,显示具体状态码)
```
如果请求成功(状态码为200),我们还需要确保获取正确的字符编码,以便正确解析返回的文本。这可以通过设置`r.encoding`为自动检测的编码(`r.apparent_encoding`),然后读取`r.text`内容:
```python
r.encoding = r.apparent_encoding
html_text = r.text
```
为了实现一个更通用的爬虫函数,我们可以封装这些步骤,创建一个名为`getHTMLText`的函数,该函数接受URL作为输入,并处理可能出现的异常:
```python
def getHTMLText(url):
try:
r = requests.get(url, timeout=30) # 设置超时时间
r.raise_for_status() # 如果状态码非200,抛出异常
r.encoding = r.apparent_encoding
return r.text
except requests.exceptions.RequestException as e:
return "产生异常: " + str(e)
# 在主程序中调用
if __name__ == "__main__":
url = "http://www.baidu.com"
print(getHTMLText(url))
```
这个函数在尝试获取HTML文本时捕获了可能的网络请求异常,并在发生错误时返回预定义的错误消息。通过这种方式,初学者可以更好地理解Python爬虫的基本结构,包括状态码检查、异常处理和编码管理。
本篇Python学习笔记的重点在于介绍如何使用requests库进行网页爬取,通过检查状态码判断请求是否成功,以及如何编写一个健壮的函数来抓取并处理HTML文本。这对于理解Web数据抓取和处理的基础至关重要。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2019-05-14 上传
2023-06-16 上传
2024-02-22 上传
2020-01-02 上传
2023-04-27 上传
2024-02-21 上传
partiphil
- 粉丝: 0
- 资源: 1
最新资源
- 51单片机入门教程(PDF文件格式).pdf
- 2009年软件设计师考试大纲<软考>
- 2009年5月软件设计师考试题(上午题)
- linux经典图书之kernel篇
- linux经典图书之drivers篇
- springGuide
- 开放式机房互动交流系统(数据库课程设计)
- CSDN 软件开发2.0技术会议:iPhone平台之(下):OpenGL ES的三维图形开发揭密
- 让你的软件飞起来---------------------
- CSDN 软件开发2.0技术会议:iPhone平台之(上):应用开发和实例解析
- 最小生成树 数据结构 C语言编程
- Linux初级应用指南
- Linux 菜鸟 过关
- LINUX基础介绍扫盲贴
- Python 基础教程(最新3.0)
- unix常用命令 (包括各种常用命令)