1.简单粗暴来讲:
text 返回的是unicode 型的数据,一般是在网页的header中定义的编码形式。
content返回的是bytes,二级制型的数据。
如果想要提取文本就用text
但是如果你想要提取图片、文件,就要用到content
2.详细一点来讲:
用了request.get方法后,返回一个response对象,这个对象里面存的是服务器返回的所有信息,包括响应头,响应状态码等。
其中返回的网页部分会存在.content和.text两个对象中。如果需要获得这些网页原始数据,我们可以通过r.text 或 r.content来获取数据。
- .text 存的是.content 编码后的字符串
- .content中间存的是字节码
一般来说 .text直接用比较方便,返回的是字符串,但是有时候会解析不正常,导致返回的是一堆乱码。这时需要用.content.decode(‘utf-8’),使其正常显示。
总的来说.text是现成的字符串,.content还要编码,但是.text不是所有时候显示都正常(需要用.content.decode()进行手动编码)
3.举栗子
3.1 例一 r.text
输入:
import requests
response = requests.get("http://m.news.cctv.com/2019/09/12/ARTI80tyFZxlGernTG2Wljf7190912.shtml")
print(response.text)
print("Finish!")
输出结果:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="filetype" content="1">
<meta name="publishedtype" content="1">
<meta name="pagetype" content="1">
<meta name="author" content="å¼ æ
§å½¬">
<meta name="source" content="央视新闻客户端">
<title>时政