IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python三方库—requests,封装urllib标准库,使得更加人性化 -> 正文阅读

[Python知识库]python三方库—requests,封装urllib标准库,使得更加人性化

一、requests模块介绍

???????Python内置的urllib模块,用于访问网络资源。但是,它用起来比较麻烦,而且,缺少很多实用的高级功能。因此requests模块在python内置模块的基础上进行了高度的封装,从而使得python进行网络请求时,变得更加简洁和人性化。

官方模块中说明:


"""
Requests HTTP Library
~~~~~~~~~~~~~~~~~~~~~

Requests is an HTTP library, written in Python, for human beings.
Basic GET usage:

   >>> import requests
   >>> r = requests.get('https://www.python.org')
   >>> r.status_code
   200
   >>> b'Python is a programming language' in r.content
   True

... or POST:

   >>> payload = dict(key1='value1', key2='value2')
   >>> r = requests.post('https://httpbin.org/post', data=payload)
   >>> print(r.text)
   {
     ...
     "form": {
       "key1": "value1",
       "key2": "value2"
     },
     ...
   }

The other HTTP methods are supported - see `requests.api`. Full documentation
is at <https://requests.readthedocs.io>.

:copyright: (c) 2017 by Kenneth Reitz.
:license: Apache 2.0, see LICENSE for more details.
"""

二、使用步骤

# -*- coding:utf-8 -*-

#python 网络请求,三方库;基于标准库urllib封装
#使用第三方库:requests,查看源码发现该模块使用:应用编程接口?----->怎么玩
# requests 
# 模块博客:https://www.cnblogs.com/saneri/p/9870901.html
# 参考博客: https://blog.csdn.net/yilovexing/article/details/54928769
import requests

#/API Demo
def get_method_simple_with_requests_module():
    url = "https://so.gushiwen.cn/mingjus/"
    reponse_obj = requests.get(url, timeout=1) # <class 'requests.models.Rezhuangtaisponse'>

## class Response(object):
    # __attrs__ = [
    #     '_content', 'status_code', 'headers', 'url', 'history',
    #     'encoding', 'reason', 'cookies', 'elapsed', 'request'
    # ]
    # @property = ['ok()', 'is_redirect()', 'is_permanent_redirect()', 
    # 'next()', 'apparent_encoding()', 'content()', 'text()', 'links()']
    # func = ['iter_content(...)', 'iter_lines(...)', 'raise_for_status(...)', 'close()']
    #### --- attr ---
    print(reponse_obj.status_code) #<class 'int'>
    print(reponse_obj.headers) #<class 'requests.structures.CaseInsensitiveDict'>
    print(reponse_obj.url) #<class 'str'>
    print(reponse_obj.history) #<class 'list'>
    print(reponse_obj.encoding) #<class 'str'> utf-8
    print(reponse_obj.reason) #状态描述e.g. "Not Found" or "OK".
    print(reponse_obj.cookies)
    print(reponse_obj.elapsed) #<class 'datetime.timedelta'> 请求返回间隔时间
   
    print(reponse_obj.request.method) #GET、<class 'requests.models.PreparedRequest'>
    print(reponse_obj.request.url)
    print(reponse_obj.request.headers)#<class 'requests.structures.CaseInsensitiveDict'>
    #{'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'User-Agent': 'python-requests/2.25.1'}

    print(reponse_obj.request.body)
    print(reponse_obj.request.hooks)
    from requests.models import  PreparedRequest
    #### --- @property ---
    print(reponse_obj.ok) #@property, return True or False, 返回状态
    print(reponse_obj.is_redirect)  #@property, return True or False,是否重定向
    print(reponse_obj.is_permanent_redirect)
    print(reponse_obj.next)
    print(reponse_obj.apparent_encoding) # utf-8
    # print(type(reponse_obj.content)) #return <class 'bytes'>
    #print(reponse_obj.text) # return <class 'str'> 不建议使用该方法,容易出现编码问题。UnicodeEncodeError: 'gbk' codec can't encode character '\xa9' in position 55249: illegal multibyte sequence
    #print(reponse_obj.json()) #json.decoder.JSONDecodeError: Expecting value: line 2 column 1 (char 1)

#Get Request
# 下载网页:
        #https://so.gushiwen.cn/mingjus/default.aspx?page=2&tstr=春天&astr=李白&cstr=唐代&xstr=诗文
        # ?tstr=边塞  类型
        # ?astr=李白  作者
        # ?cstr=唐代  朝代
        # ?xstr=诗文  形式
def get_method_whole_with_requests_module():
    url = "https://so.gushiwen.cn/mingjus/default.aspx"
    params_set = {'page': 4, 'tstr': '边塞', 'astr': '李白', 'cstr': '唐代', 'xstr': '诗文'}
    headers_set = {
        'Content-Type': 'text/html;charset=utf-8',
        'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)'
    }

    response_obj = requests.get(url, params=params_set, headers=headers_set)
    print(response_obj.url)
    print(response_obj.content)  #return <class 'bytes'>

#post 提交
def post_method_whole_with_requests_module():
    url='https://fanyi.baidu.com/sug'
    data_res = {'kw':'hi',}
    headers_set = {
        'Content-Type': 'text/html;charset=utf-8',
        'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)'
    } 
    response_obj = requests.post(url, data=data_res, headers=headers_set)
    print(response_obj.status_code)
    print(response_obj.content) #"\u672a\u77e5\u9519\u8bef"
     

if __name__ == '__main__':
    get_method_simple_with_requests_module()
    get_method_whole_with_requests_module()
    post_method_whole_with_requests_module()
    from requests import api

总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-10-15 11:45:10  更:2021-10-15 11:45:18 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 18:34:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码