博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python爬虫,requests库的安装及七个方法
阅读量:2431 次
发布时间:2019-05-10

本文共 4102 字,大约阅读时间需要 13 分钟。


  • 1、requests库的安装:

windows平台以管理员身份运行cmd,执行pip install requests

在这里插入图片描述
测试安装结果:

import requests>>> r=requests.get("http://www.baidu.com")>>> r.status_code200>>> r.encoding="utf-8">>> r.text

在这里插入图片描述


  • 2、requests库的七个主要方法及说明:

方法 说明
requests.request() 构造一个请求,支持以下各个方法的基础方法
requests.get() 获取HTML网页的主要方法,对应与HTTP的GET
requests.head() 获取HTML网页的头部信息,对应于HTTP的HEAD
requests.post() 向HTML网页提交的POST请求的方法,对应于HTTP的POST
requests.put() 向HTML网页提交的PUT请求的方法,对应于HTTP的PUT
requests.patch() 向HTML网页提交的局部修改请求,对应于HTTP的PATCH
requests.delete() 想HTML网页提交的删除请求,对应于HTTP中的DELETE

(1) get()方法:

requests.get(url,params=None, kwargs)
∙ url: 拟获取页面的url链接
∙ params: url中的额外参数,字典或字节流格式,可选
kwargs: 12个控制访问的参数
构造一个向服务器请求资源的Request对象
返回一个包含服务器资源的Response对象
Response对象返回包含爬虫返回的内容
使得url带有参数,使得服务器利用参数筛选
requests.get(url,params=None, kwargs)
∙ url: 拟获取页面的url链接
∙ params: url中的额外参数,字典或字节流格式,可选
kwargs: 12个控制访问的参数
get方法:

>>> import requests>>> kv={'key1':'value1','key2':'value2'}>>> r=requests.request('GET','http://python123.io/ws',params=kv)>>> print(r.url)https://python123.io/ws?key1=value1&key2=value2>>>

(2)Requests库的head()方法

requests.head(url,kwargs)
∙ url: 拟获取页面的url链接
kwargs: 12个控制访问的参数

>>> r.requests. head(‘http : //httpbin. org/get’)>>> r. headers{'Content-Length': '238'. ‘Access-Control-Allow-Origin':'*','Access-Control-Allow-Credentials':'true','Content-Type':'appllcation/json','Server':'nginx','Connection’:'Keep-alive’,'Date':'Sat,18 Feb 2017 1207:44 GMT'}> > > r. text

在这里插入图片描述

(3)Requests库的post()方法
requests.post(url,data=None, json=None, **kwargs)
∙ url: 拟更新页面的url链接
∙ data : 字典、字节序列或文件,Request的内容
∙ json: JSON格式的数据,Request的内容
∙****kwargs: 12个控制访问的参数

>>> payload={'key1':'vaıue1','key2':'value2'}>>> r = requests. post(‘http : //httpbin. org/post’, data=payload)>>> print(r.text){…"form”:{                           #向URL POST一个字典" key2":”value2",                   # 自动编码为form(表单)" key1":"value1"},}

*(4)Requests库的put()方法

requests.put(url,data=None, **kwargs)
∙ url: 拟更新页面的url链接
∙ data : 字典、字节序列或文件,Request的内容
∙ *kwargs: 12个控制访问的参数

>>> payload={'key1':'vaıue1','key2':'value2'}>>> r = requests. put(‘http : //httpbin. org/post’, data=payload)>>> print(r.text){…"form”:{                           " key2":”value2",                    " key1":"value1"},}

(5)requests.patch(url,data=None, **kwargs)

∙ url: 拟更新页面的url链接
∙ data : 字典、字节序列或文件,Request的内容
∙ **kwargs: 12个控制访问的参数
(6)requests.delete(url,kwargs)
∙ url: 拟删除页面的url链接
kwargs: 12个控制访问的参数

(5)Requests库的request()方法

Requests.request(method,url,**kwargs)
Method:请求方式,对应get/put/post等7种
url:拟获取页面的url链接
**kwargs:控制访问的参数,共13个
Requests.request(method,url,**kwargs)
**kwargs:控制访问的参数,均为可选项

  • Params:字典或字节序列,作为参数增加到url中
>>> kv={'key1':'value1','key2':'value2'} >>> r=requests.request('GET','http://python123.io/ws',params=kv)>>> print(r.url) http://python123.io/ws?key1=value1&key2=value2
  • Data:字典、字节序列或文件对象,作为request的内容
>>> kv={'key1':'value1','key2':'value2'} >>> r=requests.request('POST','http://python123.io/ws',data=kv) >>> body='主体内容' >>> r=requests.request('POST','http://python123.io/ws',data=body)
  • Json:json格式的数据,作为request的内容
>>> kv={'key1':'value1'} >>> r=requests.request('POST','http://python123.io/ws',json=kv)
  • Headers:字典,http定制头
>>> hd={'user‐agent':'Chrome/10'} >>> r=requests.request('POST','http://python123.io/ws',headers=hd)
  • Cookies:字典或cookiejar,request中的cookie
  • Auth:元组,支持http认证功能
  • Files:字典类型,传输文件
>>> fs={'file':open('data.xls','rb')} >>> r=requests.request('POST','http://python123.io/ws',files=fs)
  • Timeout:设定超时时间,秒为单位
>>> r=requests.request('GET','http://www.baidu.com',timeout=10)
  • Proxies:字典类型,设定访问代理服务器,可以增加登陆认证
>>> pxs={'http':'http://user:pass@10.10.10.1:1234' 'https':'https://10.10.10.1:4321'} >>> r=requests.request('GET','http://www.baidu.com',proxies=pxs)

allow_redirects: True/False,默认为True,重定向开关

  • stream : True/False,默认为True,获取内容立即下载开关
  • verify : True/False,默认为True,认证SSL证书开关
  • cert : 本地SSL证书路径

Method: 请求方式

R=requests.request(‘GET’.url,**kwargs)
R=requests.request(‘HEAD’.url,**kwargs)
R=requests.request(‘POST’.url,**kwargs)
R=requests.request(‘PUT’.url,**kwargs)
R=requests.request(‘PATCH’.url,**kwargs)
R=requests.request(‘delete’.url,**kwargs)
R=requests.request(‘OPTIONS’.url,**kwargs)

转载地址:http://nstmb.baihongyu.com/

你可能感兴趣的文章
秋招面试准备-数据库知识
查看>>
数据分析岗-机器学习相关知识
查看>>
分类模型的效果评估
查看>>
深入理解什么是Java双亲委派模型
查看>>
MySQL优化Limit查询语句
查看>>
轻松入门MySQL主从复制原理
查看>>
SpringCloud全家桶---Zuul网关
查看>>
基于zuul和ribbon的灰度发布方案
查看>>
JVM常用垃圾收集器参数说明
查看>>
MySQL索引基础知识梳理
查看>>
MySQL事务ACID底层实现原理
查看>>
关于MySQL wait_timeout问题记录
查看>>
基础算法面试题---如何用栈实现队列
查看>>
基础算法面试题---如何用队列实现栈(1)
查看>>
基础算法面试题---如何用队列实现栈(2)
查看>>
基础算法面试题---如何数组实现栈和队列
查看>>
API接口安全性设计以及各参数的作用
查看>>
《Netty权威指南 第2版》学习笔记(1)---服务端与客户端开发入门
查看>>
《Netty权威指南 第2版》学习笔记(6)--- HTTP协议开发应用
查看>>
链表算法面试题---删除链表中的重复元素II
查看>>