0001
0001
7天前 · 3 人阅读

安装 Requests

pip install requests

常用的几种用法

get 仅仅获取资源的信息,不增加或者修改数据。
post 一般丢该服务器上的资源,一般我们通过form表单进行提交请求
put 增加
delete 删除

发送请求

首先导入requests模块

import requests 然后,获取百度网页

r = requests.get('https://www.baidu.com') 我们使用r来获取想要的信息 其他的请求方式


>>> r = requests.post('https://www.baidu.com', data = {'key':'value'})
>>> r = requests.put('https://www.baidu.com/put', data = {'key':'value'})
>>> r = requests.delete('https://www.baidu.com/delete')

url参数的方式请求 get的带参数方式


In [6]: pp = {'key1': 'value1', 'key2': 'value2'}

In [7]: r = requests.get("https://www.baidu.com", params=pp)

In [8]: print(r.url)
https://www.baidu.com/?key1=value1&key2=value2

post发送表单形式的数据


In [11]: payload = {'key1': 'value1', 'key2': 'value2'}

In [12]: r = requests.post("https://httpbin.org/post", data=payload)

In [13]: print(r.text)
{"args":{},"data":"","files":{},"form":{"key1":"value1","key2":"value2"},"headers":{"Accept":"*/*","Accept-Encoding":"gzip, deflate","Connection":"close","Content-Length":"23","Content-Type":"application/x-www-form-urlencoded","Host":"httpbin.org","User-Agent":"python-requests/2.19.0"},"json":null,"origin":"221.224.134.178","url":"https://httpbin.org/post"}

响应内容


>>> import requests
>>> r = requests.get('https://api.github.com/events')
>>> r.text
u'[{"repository":{"open_issues":0,"url":"https://github.com/...
In [17]: print(r.encoding)
utf-8

json响应内容


>>> import requests

>>> r = requests.get('https://api.github.com/events')
>>> r.json()
[{u'repository': {u'open_issues': 0, u'url': 'https://github.com/...

定制请求头


>>> url = 'https://api.github.com/some/endpoint'
>>> headers = {'user-agent': 'my-app/0.0.1'}

>>> r = requests.get(url, headers=headers)
>>> print(r.headers)
{'Date': 'Wed, 13 Jun 2018 11:54:58 GMT', 'Content-Type': 'application/json; charset=utf-8', 'Transfer-Encoding': 'chunked', 'Server': 'GitHub.com', 'Status': '404 Not Found', 'X-RateLimit-Limit': '60', 'X-RateLimit-Remaining': '58', 'X-RateLimit-Reset': '1528894338', 'X-GitHub-Media-Type': 'github.v3; format=json', 'Access-Control-Expose-Headers': 'ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval', 'Access-Control-Allow-Origin': '*', 'Strict-Transport-Security': 'max-age=31536000; includeSubdomains; preload', 'X-Frame-Options': 'deny', 'X-Content-Type-Options': 'nosniff', 'X-XSS-Protection': '1; mode=block', 'Referrer-Policy': 'origin-when-cross-origin, strict-origin-when-cross-origin', 'Content-Security-Policy': "default-src 'none'", 'X-Runtime-rack': '0.010600', 'Content-Encoding': 'gzip', 'X-GitHub-Request-Id': '690A:5BEF:D89B1:11B858:5B210612'}

响应状态码


>>> r = requests.get('https://httpbin.org/get')
>>> r.status_code
200

Cookie
Cookie的常用属性:
Cookie常用的一些属性:

Domain 域 Path 路径 Expires 过期时间 name 对应的key值 value key对应的value值

如果某个响应中包含一些cookie,你可以快速访问它们


>>> url = 'https://example.com/some/cookie/setting/url'
>>> r = requests.get(url)

>>> r.cookies['example_cookie_name']
'example_cookie_value'

要想发送你的cookies到服务器,可以使用 cookies 参数:


>>> url = 'https://httpbin.org/cookies'
>>> cookies = dict(cookies_are='working')

>>> r = requests.get(url, cookies=cookies)
>>> r.text
'{"cookies": {"cookies_are": "working"}}'

requests显示中文的问题,只需要修改编码


In [22]: import requests

In [23]: param={"key1":"hello","key2":"world"}

In [24]: url='https://www.baidu.com/'

In [25]: r=requests.get(url=url)

In [26]: print(r.encoding)
ISO-8859-1

In [27]: r.encoding="utf-8"

In [28]: print(r.encoding)
utf-8
收藏 0
关键词: requests https url com get coo
评论