Requests 库入门

Requests 库入门

Requests库的安装

打开终端,输入:

pip install requests

测试安装效果:

python
>>>import requests
>>>r = requests("http://www.baidu.com")
>>>r.status_code
200
>>>r.encoding = 'utf-8'
>>>r.text
...

Requests库的常用方法

  • get
r = requests.get(url, params = None, **kwargs)
  1. url:拟获取页面的url;
  2. params:url中的额外参数,字典或字节流格式,可选
  3. **kwargs:12个控制访问参数(之后介绍)
  4. 返回一个Response对象
>>> import requests
>>> r = requests.get("http://www.baidu.com")
>>> r.status_code
200
>>> type(r)
<class 'requests.models.Response'>
>>> r.headers
{'Server': 'bfe/1.0.8.18', 'Date': 'Fri, 17 Nov 2017 07:12:31 GMT', 'Content-Type': 'text/html', 'Last-Modified': 'Mon, 23 Jan 2017 13:28:36 GMT', 'Transfer-Encoding': 'chunked', 'Connection': 'Keep-Alive', 'Cache-Control': 'private, no-cache, no-store, proxy-revalidate, no-transform', 'Pragma': 'no-cache', 'Set-Cookie': 'BDORZ=27315; max-age=86400; domain=.baidu.com; path=/', 'Content-Encoding': 'gzip'}
  • Response 对象属性

    1. r.status_code:HTTP请求的返回状态,200表示连接成功;
    2. r.text:HTTP响应内容的字符串形式,即url对应的页面内容;
    3. r.encoding:从HTTP headerVS猜猜的响应内容的编码方式;
    4. r.apparent_encoding:从内容分析出的响应内容的编码方式(备选编码方式);
    5. r.content:HTTP响应内容的二进制形式。
  • 异常

    1. requests.ConnectionError:网络连接错误异常,如DNS查询失败、拒绝连接等;
    2. requests.HTTPError:HTTP错误异常;
    3. requests.URLRequired:URL缺失异常;
    4. requests.TooMAnyRedirects:超过最大定向次数,产生重定向异常;
    5. requests.ConnectTimeout:连接远程服务器超时异常;
    6. requests.Timeout:请求URL超时,产生超时异常。
  • 爬取网页的通用代码框架

import requests
def getHTMLText(url):
    try:
        r = requests.get(url, timeout = 30)
        r.raise_for_status() # 如果状态不是200,引发HTTPError异常
        return r.text
    ecxept:
        return "产生异常"
if _name_ == "_main_"
    url = "http://www.baidu.com"
    print(getHTMLText(url))
  • HTTP协议

    1. HTTP,Hypertext Transfer Protocol,超文本传输协议。HTTP是一个基于“请求与响应”模式的、无状态的应用层协议。HTTP协议采用URL作为定位网络资源的标识。
    2. URL格式:http://host[:port][path],host为合法的Internet主机域名或IP地址,port为端口号,缺省端口为80,path为请求资源的路径;
    3. URL是通过HTTP协议存取资源的Internet路径,一个URL对应一个数据资源。
    4. HTTP协议对资源的操作:
GET:请求获取URL位置的资源;
HEAD:请求获取URL位置资源的响应消息报告,即获得该资源的头部信息;
POST:请求向URL位置的资源后附加新的数据;
PUT:请求向URL位置存储一个资源,覆盖原YURL位置的资源;
PATCH:请求局部更新URL位置的资源,即改变该处资源的部分内容;
DELETE:请求删除URL位置存储的资源。
  • HTTP协议与Requests常用方法一一对应

    1. requests.head():获取URL的头信息
>>> r = requests.head('http://httpbin.org/get')
>>> r.headers
{'Connection': 'keep-alive', 'Server': 'meinheld/0.6.1', 'Date': 'Fri, 17 Nov 2017 08:09:28 GMT', 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*', 'Access-Control-Allow-Credentials': 'true', 'X-Powered-By': 'Flask', 'X-Processed-Time': '0.000617980957031', 'Content-Length': '266', 'Via': '1.1 vegur'}
  1. requests.post():向服务器提交新增数据
>>> payload = {'key1':'value1','key2':'value2'}
>>> r = requests.post('http://httpbin.org/post', data = payload)
>>> r.text
'...  "form": {\n    "key1": "value1", \n    "key2": "value2"\n  }...' # 向URL提交一个字典,自动编码为form(表单)
>>> r = requests.post('http://httpbin.org/post', data = 'ABC')
>>> r.text
'... "data": "ABC" ...' # 向URL提交一个字符串,自动编码为data
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值