python web requests的简单应用

requests库里面直接就有请求方法post和get等,不用像urlopen处理请求那样冗余

import requests

r = requests.get('https://www.baidu.com/')
print(type(r))
print(r.status_code)
print(type(r.text))
print(r.text)
print(r.cookies)

这样就能请求了,以下介绍怎么加headers,timeout,file,data,代理,验证等

r = requests.post('http://httpbin.org/post')
r = requests.put('http://httpbin.org/put')
r = requests.delete('http://httpbin.org/delete')
r = requests.head('http://httpbin.org/get')
r = requests.options('http://httpbin.org/get')

headers = {
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36'
}
r = requests.get("https://www.zhihu.com/explore", headers=headers)

data = {
    'name': 'germey',
    'age': 22
}
r = requests.get("http://httpbin.org/get", params=data)
#添加data
data = {'name': 'germey', 'age': '22'}
r = requests.post("http://httpbin.org/post", data=data)
#上传file
files = {'file': open('favicon.ico', 'rb')}
r = requests.post('http://httpbin.org/post', files=files)

r = requests.get('https://www.baidu.com')
print(r.cookies)
for key, value in r.cookies.items():
    print(key + '=' + value)
#cookies设置
headers = {
    'Cookie': '自己的cookies',
    'Host': 'www.baidu.com',
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36',
}
r = requests.get('https://www.baidu.com', headers=headers)

#另一种比较麻烦的
cookies = '自己的'
jar = requests.cookies.RequestsCookieJar()
headers = {
    'Host': 'www.baidu.com',
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36'
}
for cookie in cookies.split(';'):
    key, value = cookie.split('=', 1)
    jar.set(key, value)
r = requests.get('http://www.baidu.com', cookies=jar, headers=headers)
#代理
proxies = {
  'http': 'http://10.10.1.10:3128',
  'https': 'http://10.10.1.10:1080',
}

requests.get('https://www.baidu.com', proxies=proxies)
#验证
from requests.auth import HTTPBasicAuth

r = requests.get('http://localhost:8000', auth=HTTPBasicAuth('username', 'password'))

可以直接传一个元组,它会默认使用 HTTPBasicAuth 这个类来认证。
r = requests.get('http://localhost:5000', auth=('username', 'password'))
#超时
r=requests.get('http://www.baidu.com',timeout=0.1)

r=requests.get('http://www.baidu.com',timeout=(1,2))

猜你喜欢

转载自blog.csdn.net/qq_37312720/article/details/83051343
今日推荐