python使用requests模块完成get/post/代理/自定义header/自定义cookies

一、背景说明

由于python3的urllib与python2有不少差别,而且urllib.request请求的一些写法不太符合人的思维习惯(文档也相当难看)

所以搞得真不太想用python,直到看urllib.request文档时注意到下边这句话

比较起来requests确实比较好用,文档也当清晰;需要自己额外安装一下,但仍比较推荐使用。

1.1 适用版本

适用于python2.6、python2.7、python3.4及以上版本,参见官方说明

我这里使用的是当前最新的python3.7。

1.2 安装requests模块

pip install pipenv
pipenv install requests

二、使用requests模块完成各种操作

2.1 引用requests模块

import requests

2.2 get请求

import requests

url=‘https://www.baidu.com‘
r = requests.get(url)
print(r.status_code)

2.3 post请求

import requests

url=‘https://www.baidu.com‘
data_post=‘just put your data and use original format‘
r = requests.post(url,data=data_post)
print(r.status_code)

2.4 使用代理

http代理没有问题,https好像有点问题需要再测试一下

import requests

url=‘http://docs.python-requests.org/en/master/‘
proxies={
    ‘http‘:‘127.0.0.1:8080‘,
    ‘https‘:‘127.0.0.1:8080‘
}
r = requests.get(url,proxies=proxies)
print(r.status_code)

2.5 自定义header

import requests

url=‘http://docs.python-requests.org/en/master/‘
headers={
    ‘User-Agent‘:‘self-defind-user-agent‘,
    ‘Cookie‘:‘name=self-define-cookies-in header‘
}
r = requests.get(url,headers=headers)
print(r.status_code)

2.6 自定义cookies

实验发现如果自定义header中定义了cookies那么此处设置的cookies不生效

import requests

url=‘http://docs.python-requests.org/en/master/‘cookies={‘name1‘:‘cookie1‘,‘name2‘:‘cookies2‘}#cookies=dict(name1=‘cookie1‘,name2=‘cookies2‘)r = requests.get(url,cookies=cookies)print(r.status_code)

参考:

官方文档--http://docs.python-requests.org/en/master/

原文地址:https://www.cnblogs.com/lsdb/p/9071015.html

时间: 2024-10-12 04:25:38

python使用requests模块完成get/post/代理/自定义header/自定义cookies的相关文章

python之requests模块-cookie

cookie并不陌生,与session一样,能够让http请求前后保持状态.与session不同之处,在于cookie数据仅保存于客户端.requests也提供了相应到方法去处理cookie. 在python之requests模块-session中,我们知道了requests中的session对象能够在请求之间保持cookie,它极大地方便了我们去使用cookie.当我们想设置方法级别中的请求时,可以如下面示例一样操作. import requests s = requests.session(

python之requests模块-hook

requests提供了hook机制,让我们能够在请求得到响应之后去做一些自定义的操作,比如打印某些信息.修改响应内容等.具体用法见下面的例子: import requests # 钩子函数1 def print_url(r, *args, **kwargs): print("raw_url "+r.url) # 钩子函数2 def change_url(r, *args, **kwargs): r.url = 'http://change.url' print("change

25-3 requests模块的cookie和代理操作

一.基于requests模块的cookie操作 引言:有些时候,我们在使用爬虫程序去爬取一些用户相关信息的数据(爬取张三"人人网"个人主页数据)时,如果使用之前requests模块常规操作时,往往达不到我们想要的目的,例如: 1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 import requests 4 if __name__ == "__main__": 5 6 #张三人人网个人信息页面的url 7 url

基于python第三方requests 模块的HTTP请求类

使用requests模块构造的下载器,首先安装第三方库requests pip install requests 1 class StrongDownload(object): 2 3 def __init__(self): 4 #拿到代理iplist 5 self.iplist = ['自己想办法搞'] # 6 self.UserAgent = ['自己想办法搞'] 7 8 def get(self,url,timeout,proxy=False,num_retries=3): 9 '''ur

python之requests模块

Python标准库中提供了:urllib等模块以供Http请求,但是,它的 API 太渣了.它是为另一个时代.另一个互联网所创建的.它需要巨量的工作,甚至包括各种方法覆盖,来完成最简单的任务. 发送GET请求 import urllib.request f = urllib.request.urlopen('http://www.webxml.com.cn//webservices/qqOnlineWebService.asmx/qqCheckOnline?qqCode=424662508')

python的requests模块

使用python进行接口测试得时候可以使用requests模块,是基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库 安装requests是模块 pip install requests requests模块的使用 requests支持http的请求类型,如get,post,delete,put,head等 如: r=requests.get("www.baidu.com") r=requests.post("www.baidu.com&qu

python (requests模块使用)

requests模块是python的一个第三方模块,它是基于python自带的urllib模块封装的,用来发送http请求和获取返回的结果,操作很简单.需要自己安装  pip install requests import requests req = requests.get('http://www.baidu.cn',data={'username':'xxx'},cookies={'k':'v'}, headers={'User-Agent':'Chrome'},verify=False,

python之requests模块学习(一)

安装好requests后调用出现: 是因为当前路径存在了和模块一样的名称: http://stackoverflow.com/questions/12258816/module-object-has-no-attribute-get-python-error-requests 如如果出现重命名不了该文件: 是因为py文件里面存在requests必须要全部删除后才能重命名,包括注释里面也不能有"""@version:2.7.10@author:chenmingli# @file

python的requests模块参数详解

import requests print(dir(requests)) # 1.方法 # ['ConnectTimeout', 'ConnectionError', 'DependencyWarning', 'FileModeWarning', 'HTTPError', 'NullHandler', 'PreparedRequest', 'ReadTimeout', 'Request', 'RequestException', 'RequestsDependencyWarning', 'Res