Python发送网络请求(requests)

 更新时间:2023年09月06日 08:35:16   作者:阿飞学不会吖  
这篇文章主要介绍了Python发送网络请求(requests),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

Python发送网络请求(requests)

Python已经是广泛使用的脚本语言了,我们可以使用requests库进行网络请求。

在PyPI中搜索 requests ,就可以找到这个库

1. 安装

pip install requests

安装完成后,在py脚本中使用库,需要 import 进行代码导入

import requests

2. 发送请求

2.1 发送GET请求

import requests
r = requests.get('https://api.github.com/events')
print(r)

如果请求成功,返回的结果为 Response 对象

GET 请求也是可以传递参数的,上面的代码演示的是无参数形式,可以通过 params 参数传递 GET 参数。

import requests
payload = {'key1': 'value1', 'key2': 'value2'}
r = requests.get('https://httpbin.org/get', params=payload)

2.2 发送POST请求

import requests
r = requests.post('https://httpbin.org/post', data={'key': 'value'})
print(r)

POST请求通过 data 参数传递请求参数

2.3 输出其他信息

import requests
r = requests.get('https://api.github.com/events')
print(r)
print(r.encoding);
print(r.url);
print(r.status_code);
print(r.cookies);
print(r.headers);

encoding 表示编码;url 表示完整请求路径;status_code 表示 http 请求状态码;cookies 表示 cookies 信息;headers 表示请求头信息。

3. 心得

Python的requests 库可以实现网络请求,可以以非常简单的API发送GET、POST请求,并可以根据得到的Response对象获取请求结果

Python多进程调用requests API发送网络请求导致python程序崩溃

描述

在涉及到multiprocess的python项目中,如果在forked出的process中,调用requests API(i.e. requests.get('...'), 该进程会崩溃。

原因

根据对代码执行路径的分析,以及issue 和其他网友的记录, 可以判定该bug的出现原因为Mac的libdispatch并不是fork-safe,从而导致在fork出的进程里使用requests出错。

解决方案

在main process里完成requests相关初始化

如果确实要在fork出的process里调用requests,那么在调用前,添加以下代码:

os.environ['no_proxy']='*'

来跳过network proxy lookup。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python关于__name__属性的含义和作用详解

    Python关于__name__属性的含义和作用详解

    在本篇文章里小编给大家分享的是关于Python关于__name__属性的含义和作用知识点,需要的朋友们可以参考下。
    2020-02-02
  • Python3.遍历某文件夹提取特定文件名的实例

    Python3.遍历某文件夹提取特定文件名的实例

    下面小编就为大家分享一篇Python3.遍历某文件夹提取特定文件名的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • Python Map 函数的使用

    Python Map 函数的使用

    这篇文章主要介绍了Python Map 函数的使用,帮助大家更好的理解和学习python,感兴趣的朋友可以了解下
    2020-08-08
  • 七个生态系统核心库[python自学收藏]

    七个生态系统核心库[python自学收藏]

    无论你是想快速入手Python,还是想成为数据分析大神或者机器学习大佬,亦或者对Python代码进行优化,本文的python库都能为你提供一些帮助
    2021-08-08
  • python中的字典使用分享

    python中的字典使用分享

    Python 中的字典是Python中一个键值映射的数据结构,下面介绍一下如何操作字典,希望大家能够喜欢
    2016-07-07
  • Jupyter notebook远程访问服务器的方法

    Jupyter notebook远程访问服务器的方法

    今天小编就为大家分享一篇Jupyter notebook远程访问服务器的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • Python+Django实现接口测试工具的示例代吗

    Python+Django实现接口测试工具的示例代吗

    本文主要介绍了Python+Django实现接口测试工具,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • Django上线部署之IIS的配置方法

    Django上线部署之IIS的配置方法

    这篇文章主要介绍了Django上线部署之IIS的配置方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-08-08
  • 详解python tkinter模块安装过程

    详解python tkinter模块安装过程

    tkinter其实是Python调用tcl程序的标准Python程序,可以通过这个interface调用tcl的程序,因为在大多数的unix系统中都内置了很多的tcl程序和命令。这篇文章主要介绍了python tkinter模块安装,需要的朋友可以参考下
    2020-01-01
  • pandas中std和numpy的np.std区别及说明

    pandas中std和numpy的np.std区别及说明

    这篇文章主要介绍了pandas中std和numpy的np.std区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08

最新评论