0x00  环境简介和安装


我这里使用的是python2.7版本,直接使用pycharm2018这款IDE。

首先在pycharm中配置一下virtualenv环境,virtualenv是一个创建独立Python运行环境的工具,为一个应用创建一套“隔离”的Python运行环境。

创建new project时选择创建新的环境,修改你们自己的目录,如果主机内有多个版本的python解释器可自行选择

创建完成后可以在项目中安装requests库,file-settings打开如下界面

单击右上角绿色加号,搜索requests并install

这里如果你的pip版本大于等于10,安装的时候会报错,原因是由于新版pip的函数发生了变化,解决办法参考这个帖子

【Python】【亲测好用】安装第三方包报错:AttributeError:'module' object has no attribute 'main'

0x01  使用requests


请求方法

    • GET:     查看资源
    • POST:             增加资源
    • PUT:     修改资源
    • DELETE:         删除资源
    • HEAD:             查看响应头
    • patch:              局部更新url资源

基本用法:requests.[methon](url)

import requests

response = requests.get('https://www.cnblogs.com/Ragd0ll/p/10176258.html')
print(response.status_code) # 打印状态码
print(response.url) # 打印请求url
print(response.headers) # 打印头信息
print(response.cookies) # 打印cookie信息
print(response.text) #以文本形式打印网页源码
print(response.content) #以字节流形式打印

request的可选参数

1.param

2.data

3.json

4.headers

5.cookies、auth

6.files

7.timeout

8.proxies

9.allow_redirects、stream、verify、cert

带参数的get请求:

第一种直接将参数放在url内

import requests

response = requests.get(http://httpbin.org/get?name=gemey&age=22)
print(response.text)

第二种是将参数放入字典,然后在请求时给params参数赋值

import requests

data = {
'name': 'tom',
'age': 20
} response = requests.get('http://httpbin.org/get', params=data)
print(response.text)

两段代码的结果相同

基本POST请求:

import requests

data = {'name':'tom','age':''}

response = requests.post('http://httpbin.org/post', data=data)

简单保存一个二进制文件

import requests

response = requests.get('https://img2018.cnblogs.com/blog/1342178/201812/1342178-20181225201042109-1353349536.png')
b = response.content
with open('F://fengjing.jpg','wb') as f:
f.write(b)

为你的请求添加头信息

import requests
heads = {}
heads['User-Agent'] = 'Mozilla/5.0 ' \
'(Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 ' \
'(KHTML, like Gecko) Version/5.1 Safari/534.50'
response = requests.get('https://home.cnblogs.com/u/Ragd0ll/',headers=headers)

获取cookie

import requests

response = requests.get('https://home.cnblogs.com/u/Ragd0ll/')
print(response.cookies)
print(type(response.cookies))
for k,v in response.cookies.items():
print(k+':'+v)

会话维持

import requests

session = requests.Session()
session.get('http://httpbin.org/cookies/set/number/12345')
response = session.get('http://httpbin.org/cookies')
print(response.text)

证书验证设置

import requests
from requests.packages import urllib3 urllib3.disable_warnings() #从urllib3中消除警告
response = requests.get('https://www.12306.cn',verify=False) #证书验证设为FALSE
print(response.status_code)

超时异常捕获

import requests
from requests.exceptions import ReadTimeout try:
res = requests.get('http://httpbin.org', timeout=0.1)
print(res.status_code)
except ReadTimeout:
print(timeout)

异常处理

import requests
from requests.exceptions import ReadTimeout,HTTPError,RequestException try:
response = requests.get('http://www.baidu.com',timeout=0.5)
print(response.status_code)
except ReadTimeout:
print('timeout')
except HTTPError:
print('httperror')
except RequestException:
print('reqerror')

 Response的方法

request库的更多相关文章

  1. Python3 urllib.request库的基本使用

    Python3 urllib.request库的基本使用 所谓网页抓取,就是把URL地址中指定的网络资源从网络流中读取出来,保存到本地. 在Python中有很多库可以用来抓取网页,我们先学习urlli ...

  2. Python request库与爬虫框架

    Requests库的7个主要方法  requests.request():构造一个请求,支持以下各方法的基础方法  requests.get():获取HTML网页的主要方法,对应于HTTP的GET  ...

  3. Request库使用response.text返回乱码问题

    我们日常使用Request库获取response.text,这种调用方式返回的text通常会有乱码显示: import requests res = requests.get("https: ...

  4. 爬虫——urllib.request库的基本使用

    所谓网页抓取,就是把URL地址中指定的网络资源从网络流中读取出来,保存到本地.在Python中有很多库可以用来抓取网页,我们先学习urllib.request.(在python2.x中为urllib2 ...

  5. 爬虫request库规则与实例

    Request库的7个主要方法: requests.request(method,url,**kwargs) ​ method:请求方式,对应get/put/post等7种: ​ r = reques ...

  6. Python网络爬虫与信息提取[request库的应用](单元一)

    ---恢复内容开始--- 注:学习中国大学mooc 嵩天课程 的学习笔记 request的七个主要方法 request.request() 构造一个请求用以支撑其他基本方法 request.get(u ...

  7. Request库的安装与使用

    Request库的安装与使用 安装 pip install reqeusts Requests库的7个主要使用方法 requests.request() 构造一个请求,支撑以下各方法的基础方法 req ...

  8. python网络爬虫学习笔记(一)Request库

    一.Requests库的基本说明 引入Rquests库的代码如下 import requests 库中支持REQUEST, GET, HEAD, POST, PUT, PATCH, DELETE共7个 ...

  9. Request库学习

    0x00前言 这库让我爱上了python  碉堡! 开心去学了一些python,然后就来学这个时候神库~~ 资料来源:http://cn.python-requests.org/en/latest/u ...

  10. 爬虫入门【1】urllib.request库用法简介

    urlopen方法 打开指定的URL urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, ca ...

随机推荐

  1. 基于flash-marker.js 的地图标注闪烁代码调试

    修改网上流传的flash-marker.js (function (global, factory) { typeof exports === 'object' && typeof m ...

  2. PHP代码中出现中文乱码怎么办?

    header("Content-type:text/html;charset=utf-8"); //加上这个就OK //示例 : class WechatController ex ...

  3. poj 3259 时光穿梭问题 bellman_ford算法

    题意:有n个空地,有m条双向大路,w条时光隧道单向路.问能否回到过去? 思路:判断是否有负环存在,如果有负环存在那么就可以一直小就可以回到过去了 创建源顶点 V到其他顶点的距离d 初始为INF d[1 ...

  4. Linux命令之---touch

    命令简介 linux的touch命令不常用,一般在使用make的时候可能会用到,用来修改文件时间戳,或者新建一个不存在的文件. 命令格式 touch [选项]... 文件... 命令参数 -a   或 ...

  5. Android 获取地理位置信息 封装好了 直接用

    前言:花了一个早上研究了以下android获取经纬度,然后网上的参考资料都是杂七杂八,基本上都是过去几年的,现在我用 android6.0参照别人的结果发生好多错误,我的内心几乎是崩溃的.后来,不断百 ...

  6. JDK各版本新特性浅谈

    JDK 5.0 自动拆装箱 枚举 可变参数 泛型 For -each 内省 静态导入 JDK 6.0 console开发控制台程序 轻量级HTTP ServerAPI 支持脚本语言 使用Compile ...

  7. 电脑卡,eclipse Android stadio 卡,什么都卡解决方法

    昨天还好好的,今天什么都没有动就很卡.Android stadio 半天,改了东西才编译.什么都慢一拍,你能感觉到,打开网页也好,什么也好. 莫名的问题,总是被莫名的解决.真的,下了个360杀毒,没效 ...

  8. Redis实现之压缩列表

    压缩列表 压缩列表(ziplist)是列表键和哈希键的底层实现之一,当一个列表键只包含少量列表项,并且每个列表项要嘛是整数值,要嘛是比较短的字符串,那么Redis就会使用压缩列表来做列表键的底层实现. ...

  9. 第2章c++简单程序设计

    第2章c++简单程序设计 知识梳理 以下是我遗忘以及认为重要的知识整理: 1.标识符的构成规则: 以大写字母.小写字母或下划线 _ 开始 由大写字母.小写字母.下划线 _ 或数字(0~9)组成 大写字 ...

  10. Git的安装及常用操作

    一.Git的安装 1.下载Git,官网地址为:https://git-scm.com/downloads.     2.下载完成之后,双击目录进行安装 3.选择安装目录 4.选择组件,默认即可 5.设 ...