Bootstrap

requests 基础内容介绍

介绍

官方的文档介绍:requests是一个非转基因的Python HTTP 库。功能强大,语法简洁。
Requests继承了urllib的所有特性。Requests支持http连接保持和连接池,支持使用cookie保持会话,
支持文件上传,支持自动确定响应内容的编码,支持国际化的URL和POST数据自动编码。
中文文档地址 https://requests.readthedocs.io/zh_CN/latest/

安装

pip install resquests 
#1:测试安装的效果

#第一步  导入模块
import requests
r = requests.get('http://www.baidu.com')
print(r.status_code) #200

requests的三个参数介绍

requests.request(method,url,**kwargs)

  • method:请求方法,对应get/put/post/delete/head/patch/options
  • url :请求的url地址
  • **kwrags:控制访问的参数,共13个,均为可选项

请求方式

方法说明
requests.get()获取HTML网页的主要方法,对应于HTTP的GET
requests.post()向HTML网页提交POST请求的方法,对应于HTTP的POST
requests.put()向HTML网页提交PUT请求的方法,对应于HTTP的PUT
requests.delete()向HTML页面提交删除请求,对应于HTTP的DELETE
requests.head()获取HTML网页头信息的方法,对应于HTTP的HEAD
requests.request()构造一个请求,支撑以下各方法的基础方法
requests.patch()向HTML网页提交局部修改请求,对应于HTTP的PATCH

Response对象属性

属性说明
r.status_codeHTTP请求的返回状态,200表示连接成功,404表示连接失败
r.textHTTP响应内容的字符串形式,(url页面的内容)
r.encoding从HTTP header中获取响应内容的编码方式
r.apparent_encoding从内容中分析出的响应内容编码方式(备选编码方式)
r.content从HTTP 响应内容的二进制形式

可选参数属性

方法介绍
params字典或者字节序列,作为参数增加到url中
data字典、字节、或文件对象,作为request
jsonJSON格式的数据,作为request的内容
cookies字典或CookieJar,request中的cookie
auth元组,支持HTTP认证功能
files字典类型,传输文件
tiemout设定时间
proxies字典类型,设定访问代理服务器,可以增加登录认证
allow_redirectsTrue/False,默认为True,重定向开关
streamTrue/False,默认为True,获取内容立即下载开关
verifyTrue/False,默认为True,认证SSL证书开关
cert本地SSL证书路径

requests库的异常

异常说明
requests.ConnectionError网络连接错误异常,如DNS查询失败、拒绝连接等
requests.HTTPError HTTP错误异常
requests.URLRequired URL缺失异常
requests.TooManyRedirects超过最大重定向次数,产生重定向异常
requests.ConnectTimeout连接远程服务器超时异常
requests.Timeout请求URL超时,产生超时异常
r.raise_for_status()如果不是200,产生异常 requests.HTTPError

案例(一)-爬取百度首页

import requests

r = requests.get(url="https://www.baidu.com/",)

print(r.status_code) #200
print(r.headers) #略 (打印网页的头部信息)
print(r.text) # 略(打印网页的字符串类型)
print(r.encoding) #ISO-8859-1
print(r.apparent_encoding) #utf-8
print(r.content) #略 (打印网页的二进制类型)

"""
可复制代码 挨个打印查看效果
"""

案例(二)-爬取百度图片

import requests

img_response = requests.get(url="http://k.sinaimg.cn/m1/maxwidth.2880/m1.sinaimg.cn/0bdec5881ba749e3a2a79d1a8e4f00ae_640_356.jpg/w700h350z1l10t108ee.jpg", verify=False)
# 保存图片
with open('爬取图片.jpg','wb') as fp:
    fp.write(img_response.content)
    
"""
url可以更换成自己项爬取的图片url

"""

最后 介绍requests通过爬虫框架

import requests

def getHTML(url):
    try:
        r = requests.get(url,timeout = 30)
        r.raise_for_status() #如果不是200,产生异常 requests.HTTPError
        r.encoding = r.apparent_encoding 
        return r.text
    except:
        print("异常")

if __name__ == '__main__':
    url = 'http://www.baidu.com'
    r = getHTML(url)
    print(r)
;