python抓取动态网页(爬取网页其实就是通过URL获取网页信息的实质是什么)

优采云 发布时间: 2022-04-14 16:20

  python抓取动态网页(爬取网页其实就是通过URL获取网页信息的实质是什么)

  爬取网页实际上是通过 URL 获取网页信息。网页信息的本质是一段添加了 JavaScript 和 CSS 的 HTML 代码。Python 提供了第三方请求模块,用于抓取网页信息。requests 模块自称为“HTTP for Humans”,字面意思是专为人类设计的 HTTP 模块。该模块支持发送请求和获取响应。Python技术文章2021-11-19 | 传智教育|使用requests模块爬取网页

  

  爬取网页实际上是通过 URL 获取网页信息。网页信息的本质是一段添加了 JavaScript 和 CSS 的 HTML 代码。Python 提供了第三方请求模块,用于抓取网页信息。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

网页源代码:

百度一下,你就知道

…省略N行…

  值得一提的是,在使用requests模块爬取网页时,可能会因未连接网络、服务器连接失败等原因出现各种异常,其中最常见的两个异常是URLError和HTTPError。这些网络异常可以与 try... except 语句捕获和处理一起使用。

  相关建议:Python 绘图 Matplotlib.pyplot 显示网格 Python 培训:设置轴的标签

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线