怎样使用Requests模块抓取网页?

开发 前端
爬取网页其实就是通过URL获取网页信息,网页信息的实质是一段添加了JavaScript和CSS的HTML代码。

​爬取网页其实就是通过URL获取网页信息,网页信息的实质是一段添加了JavaScript和CSS的HTML代码。Python提供了一个抓取网页信息的第三方模块requests,requests模块自称“HTTP for Humans”,直译过来的意思是专门为人类而设计的HTTP模块,该模块支持发送请求,也支持获取响应。

1.发送请求

requests模块提供了很多发送HTTP请求的函数,常用的请求函数具体如表10-1所示。

表10-1 requests模块的请求函数

2.获取响应

requests模块提供的Response 类对象用于动态地响应客户端的请求,控制发送给用户的信息,并且将动态地生成响应,包括状态码、网页的内容等。接下来通过一张表来列举Response类可以获取到的信息,如表10-2所示。

表10-2 Response 类的常用属性

接下来通过一个案例来演示如何使用requests模块抓取百度网页,具体代码如下:

# 01 requests baidu
import requests
base_url = 'http://www.baidu.com'
#发送GET请求
res = requests.get (base_url)
print("响应状态码:{}".format(res.status_code)) #获取响应状态码
print("编码方式:{}".format(res.encoding) #获取响应内容的编码方式
res.encoding = 'utf-8' #更新响应内容的编码方式为UIE-8
print("网页源代码:\n{}".format(res.text)) #获取响应内容

以上代码中,第2行使用import导入了requests模块;第3~4行代码根据URL向服务器发送了一个GET请求,并使用变量res接收服务器返回的响应内容;第5~6行代码打印了响应内容的状态码和编码方式;第7行将响应内容的编码方式更改为“utf-8”;第8行代码打印了响应内容。运行程序,程序的输出结果如下:

响应状态码:200
编码方式:ISO-8859-1
网页源代码:
<!DOCTYPE html>
<!-STATUS OK--><html> <head><meta http-equiv=content-type content=text/html;
charset=utf-8><meta http-equiv=X-UA-Compatible content=IE=Edge><meta content=
always name=referrer><link rel=stylesheet type=text/css href=http://s1.bdstatic.
com/r/www/cache/bdorz/baidu.min.css><title>百度一下,你就知道</title></head>
<body link=#0000cc>…省略N行…</body></html>

值得一提的是,使用requests模块爬取网页时,可能会因为没有连接网络、服务器连接失败等原因导致产生各种异常,最常见的两个异常是URLError和HTTPError,这些网络异常可以使用 try…except 语句捕获与处理。

责任编辑:华轩 来源: 今日头条
相关推荐

2012-05-17 15:11:23

linux

2022-06-28 13:41:07

浏览网页互联网交互Python

2021-11-24 17:22:06

网络抓取网络爬虫数据收集

2019-11-19 15:43:07

人工智能软件技术

2020-10-12 08:19:43

Python爬虫网页数据

2009-07-31 10:34:41

ASP.NET抓取网页

2009-12-02 15:50:41

PHP抓取网页内容

2010-03-03 15:39:50

Python抓取网页内

2023-11-27 08:51:46

PythonRequests库

2010-03-04 11:22:59

Python抓取网页图

2009-09-07 14:00:57

C#抓取网页

2024-10-10 15:04:34

2010-07-16 11:16:40

Perl抓取网页

2009-09-25 11:14:16

Hibernate批量

2009-12-17 15:28:32

内核模块编译

2019-01-31 09:02:56

网页抓取设计模式数据

2017-01-20 08:44:53

Apache Flum抓取数据

2022-08-12 08:00:00

编码语言开发工具

2020-11-11 10:58:59

Scrapy

2010-01-18 14:41:33

VB.NET抓取网页
点赞
收藏

51CTO技术栈公众号