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=dict(name1='cookie1',name2='cookies2')
r = requests.get(url,cookies=cookies)
print(r.status_code)

参考:

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

猜你喜欢

转载自www.cnblogs.com/lsdb/p/9071015.html
今日推荐