安迪Python

V1

2022/06/17阅读:11主题:默认主题

05 Response对象的text属性可以获取HTML代码

05 Response对象的text属性可以获取HTML代码

5.1 Response.text 可以获取HTML代码

之前说过浏览器向服务器发送请求,服务器会给浏览器一个响应。
通常服务器返回给浏览器的响应内容,
主要包含了响应状态码、响应头和响应体等信息。
响应的正文数据都在响应体中。

当我们人工访问网站成功后,我们看到的是布局好的图片和文字。
当Python访问网站成功后,我们查看它的text属性,
我们看到的是网页的 HTML 代码。

服务器返回响应的正文数据都在响应体中。
响应体=网页的 HTML 代码
调用text属性相当于人工访问网页时的查看【网页源代码】。

查看网页源代码有2种方式:
方法1:按【F12】快捷键;
方法2:鼠标右键,然后选择【查看网页源代码】。

5.1.1 访问百度网页

# 导入访问网页要用的库
import requests

# 申明一个变量存储网址
# 网址是一个字符串变量,注意网址前后都必须有引号
url = 'https://www.baidu.com/'

# 用requests.get(网址)访问网页 
# 库名.函数名(要访问的网址) 
print('*requests.get(url)函数得到的是一个Response对象*')
print(requests.get(url),'\n')

print('*打印Response对象的status_code属性,即状态码*')
print(requests.get(url).status_code,'\n')

print('*type查看Response对象的text属性的类型*')
print(type(requests.get(url).text),'\n')

print('*打印Response对象的text,即html代码*')
print(requests.get(url).text)

【终端输出】

*requests.get(url)函数得到的是一个Response对象*
<Response [200]> 

*打印Response对象的status_code属性,即状态码*
200 

*type查看Response对象的text属性的类型*
<class 'str'> 

*打印Response对象的text,即html代码*
<!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=https://ss1.bdstatic.com/5eN1bjq8AAUYm2zgoY3K/r/www/cache/bdorz/baidu.min.css>
 <title>百度一下,你就知道</title></head> <body link=#0000cc> <div id=wrapper> 
 <div id=head> 
 <div class=head_wrapper> 

注意:因篇幅受限,上述HTML代码仅截取部分内容。
代码运行后,我们可以看到 requests.get(url).text 可以得到HTML代码的字符串形式。
但我们发现得到的HTML代码是一堆我们看不懂的乱码。
出现上述问题的原因主要是字符编码格式的问题。
在Python中requests库默认的字符编码是英文的。
我们这里访问的百度网页是中文网页,所以出现了我们看不懂的乱码。
但我们只需要把字符编码格式要设置为中文的,我们就能得到我们能看懂的HTML代码了。

5.1.2 访问优美图库

# 导入访问网页要用的库
import requests

# 申明一个变量存储网址
# 网址是一个字符串变量,注意网址前后都必须有引号
url = 'https://www.umei.cc/'

# 用requests.get(网址)访问网页 
# 库名.函数名(要访问的网址) 
print('*requests.get(url)函数得到的是一个Response对象*')
print(requests.get(url),'\n')

print('*打印Response对象的status_code属性,即状态码*')
print(requests.get(url).status_code,'\n')

print('*type查看Response对象的text的类型*')
print(type(requests.get(url).text),'\n')

print('*打印Response对象的text属性,即html代码*')
print(requests.get(url).text)

【终端输出】

*requests.get(url)函数得到的是一个Response对象*
<Response [200]> 

*打印Response对象的status_code属性,即状态码*
200 

*type查看Response对象的text的类型*
<class 'str'> 

*打印Response对象的text属性,即html代码*
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1">
<meta name="applicable-device" content="pc,mobile">
<title>【优美图库】美å

5.2 总结

6_爬虫的步骤
6_爬虫的步骤

分类:

后端

标签:

Python

作者介绍

安迪Python
V1