网络请求库 requests

网络请求库 requests


GET 请求

1.通过 get 访问一个页面
import requests
r=requests.get('https://www.douban.com/')   #豆瓣首页
r.status_code   #200
r.text 

#结果:<!DOCTYPE HTML>\n<html lang="zh-cmn-Hans" class="">\n<head>\n<meta charset="UTF-8">\n<meta name="description" content="提供图书、电影、音乐唱片的推荐、评论和价格比较,以及城市独特的文化生活。...">
2. 带参数的地址
import requests
r=requests.get('https://www.douban.com/search', params={'q':'python','cat':'1001'})
r.url       #实际请求的 url  'https://www.douban.com/search?q=python&cat=1001'
r.encoding  #检测编码  'utf-8'
r.content   #获得 bytes 对象

#b'<!DOCTYPE html>\n<html>\n<head>\n<meta http-equiv="Content-Type" content="text/html; charset=utf-8">\n...'
3.JSON 数据的获取请求
import requests
r=requests.get('https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20weather.forecast%20where%20woeid%20%3D%202151330&format=json')
r.json()

#{'query':{'count':1, 'created':'2017-12-14T02:35:49Z', ...}}
4.需要请求头中添加参数
import requests
r = requests.get('https://www.douban.com/', headers={'User-Agent':'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit'})
5.指定超时
r = requests.get(url, timeout=2.5) #2.5秒后超时
6.获取响应头
r.headers   #{Content-Type': 'text/html; charset=utf-8', 'Transfer-Encoding': 'chunked', 'Content-Encoding': 'gzip', ...}
r.headers['Content-Type']  #'text/html; charset=utf-8'
r.cookies['ts']  #example_cookie_12345'
8.请求中传入 cookies 参数
cs={'token':'12345', 'status':'working'}
r=requests.get(url, cookies=cs)

POST请求

1.发送 post 请求
data 参数作为 post 请求的数据
import requests
r = requests.post('https://accounts.douban.com/login', data={'form_email':'abc@example.com', 'form_password':'123456'})

requests默认使用 application/x-www-form-urlencoded 编码。要传递 json 数据可以使用以下形式:

import requests
params = {'key':'value'}
r= requests.post(url, json=params)  #内部自动序列化为 JSON
2.上传文件,读文件时,用’rb’形式
import requests
upload_files = {'file':open('report.xls', 'rb')}
r = requests.post(url, files=upload_files)

post()方法替换为 put(),delete()等,就可以以 PUTDELETE 方式请求资源。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值