python 中爬虫 content和text的区别

一直在想requests的content和text属性的区别,从print 结果来看是没有任何区别

import requests
headers = {
    "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36"
}

url = 'https://www.sogou.com/web?query={}'

key = input('请输入')

params = {'query':key}


response = requests.get(url,params=params,headers=headers)


print(response.text)

结论是:text 返回的是unicode 型的数据,一般是在网页的header中定义的编码形式。

content返回的是bytes,二级制型的数据。

也就是说你如果想要提取文本就用text

但是如果你想要提取图片、文件,就要用到content

  # 1. 导入requests模块
    import requests
    # 2. 发送请求获取二进制数据(bytes)
    respone =  requests.get("http://imgsrc.baidu.com/image/c0%3Dpixel_huitu%2C0%2C0%2C294%2C40/sign=098c3f828cd6277ffd1f3a7841407a5c/3c6d55fbb2fb4316e3afd1432ba4462309f7d353.jpg")
    # 获取二进制数据; 注意: 这里不要解码, 因为图片,视频等文件都是二进制的不是文本,不需要解码
    # data = respone.content
    # 3. 把数据写入文件
    with open("壁纸.jpg", "wb") as f:
        f.write(respone.content)

猜你喜欢

转载自www.cnblogs.com/12580s/p/9332803.html