Requests 是用Python语言编写HTTP客户端库,跟urllib、urllib2类似,基于 urllib,但比 urllib 更加方便,可以节约我们大量的工作,完全满足 HTTP 测试需求,编写爬虫和测试服务器响应数据时经常会用到。

Requests 的哲学是以 PEP 20 的习语为中心开发的,所以它比 urllib 更加 Pythoner,更重要的一点是它支持 Python3

  • Beautiful is better than ugly. (美丽优于丑陋)
  • Explicit is better than implicit. (清楚优于含糊)
  • Simple is better than complex. (简单优于复杂)
  • Complex is better than complicated. (复杂优于繁琐)
  • Readability counts. (重要的是可读性)

Requests 官网

https://pypi.python.org/pypi/requests

安装 Requests

方式1)pip 安装

pip install requests      # python2.7
pip3 install requests    # python3.6

方式2)源码安装

下载 requests-2.18.2.tar.gz

解压安装:

tar zxvf requests-2.18.2.tar.gz
cd requests
python setup.py install

验证安装:

$ python
Python 2.7.13 (v2.7.13:a06454b1afa1, Dec 17 2016, 12:39:47)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import requests
>>> requests
<module 'requests' from '/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/requests/__init__.pyc'>

使用 Requests

requests 封装了Python的urlib和urllib2,所以爬取网页非常简洁

1. 爬取网页

import requests

# 爬取米扑科技首页
req = requests.get(url = 'http://mimvp.com')
print("status_code : " + str(req.status_code))
print("mimvp text : " + req.text) # 爬取米扑代理(含请求参数)
req = requests.get(url='http://proxy.mimvp.com/free.php', params={'proxy':'out_tp','sort':'p_ping'})
print("status_code : " + str(req.status_code))
print("mimvp text : " + req.text)

爬取网页非常简洁吧,Python urllib 三行代码,requests只需要一行代码搞定

urllib :  urllib.urlopen('http://mimvp.com').read()

urllib2: urllib2.urlopen('http://mimvp.com').read()

或者

import urllib2
req = urllib2.Request('http://mimvp.com')
res = urllib2.urlopen(req)
page = res.read()

requests 接口格式:

requests.get('https://mimvp.com/timeline.json')    # GET请求
requests.post('http://mimvp.com/post') # POST请求
requests.put('http://mimvp.com/put') # PUT请求
requests.delete('http://mimvp.com/delete') # DELETE请求
requests.head('http://mimvp.com/get') # HEAD请求
requests.options('http://mimvp.com/get') # OPTIONS请求

requests 接口示例:

import requests
requests.get('http://mimvp.com', params={'love': 'mimvp'}) # GET参数实例
requests.post('http://mimvp.com', data={'love': 'mimvp'}) # POST参数实例

Requests 设置代理

#!/usr/bin/env python
# -*- encoding: utf-8 -*-
#
# Python requests 支持 http、https、socks4、socks5
#
# 米扑代理示例:
# http://proxy.mimvp.com/demo2.php
#
# 米扑代理购买:
# http://proxy.mimvp.com
#
# mimvp.com
# 2016-09-16 import requests
import ssl
import socks, socket # 需要引入socks.py文件,请到米扑代理下载 mimvp_url = "http://proxy.mimvp.com/exist.php"
mimvp_url2 = "https://proxy.mimvp.com/exist.php"
mimvp_url3 = "https://apps.bdimg.com/libs/jquery-i18n/1.1.1/jquery.i18n.min.js" # 使用代理 http, https
proxies = {
"http" : "http://120.77.155.249:8888",
"https" : "http://54.255.211.38:80",
} req = requests.get(mimvp_url2, proxies=proxies, timeout=30, verify=False)
print("mimvp text : " + req.text) # 使用代理 socks4
proxies = {
'socks4' : '163.121.188.2:4000',
} socks4_ip = proxies['socks4'].split(":")[0]
socks4_port = int(proxies['socks4'].split(":")[1])
socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS4, socks4_ip, socks4_port)
socket.socket = socks.socksocket req = requests.get(mimvp_url2, timeout=30, verify=False)
print("mimvp text : " + req.text) # 使用代理 socks5
proxies = {
'socks5' : '190.9.58.211:45454',
} socks5_ip = proxies['socks5'].split(":")[0]
socks5_port = int(proxies['socks5'].split(":")[1])
socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, socks5_ip, socks5_port)
socket.socket = socks.socksocket req = requests.get(mimvp_url2, timeout=30, verify=False)
print("mimvp text : " + req.text)

本示例采用的米扑代理,支持 http、https、socks4、socks5等多种协议,覆盖全球120多个国家,中国34个省市

推荐米扑代理: http://proxy.mimvp.com

参考推荐:

Python pyspider 安装与开发

Python3 urllib 用法详解

PhantomJS 安装与开发

Node.js 安装与开发

Node.js SuperAgent 安装与开发

Python requests 安装与开发的更多相关文章

  1. Python的安装与开发环境的选用

    2021快要结束了,这一年我依旧深耕于python的广阔土壤,将重点放在机器人和传感器的角度.也收获了一大批正在学习和期望学习python的朋友. 正在学习的暂且不言,这篇主要是写给期望学习的朋友,同 ...

  2. Python pyspider 安装与开发

    PySpider 简介 PySpider是一个国人编写的强大的网络爬虫系统并带有强大的WebUI.采用Python语言编写,分布式架构,支持多种数据库后端,强大的WebUI支持脚本编辑器.任务监视器, ...

  3. python requests 安装

    在 windows 系统下,只需要输入命令 pip install requests ,即可安装. 在 linux 系统下,只需要输入命令 sudo  pip install requests ,即可 ...

  4. Python 离线 安装requests第三方库

    一.介绍 requests是Python的一个HTTP客户端库,跟urllib,urllib2类似,不过requests的优势在于使用简单,相同一个功能,用requests实现起来代码量要少很多.毕竟 ...

  5. python下载安装requests库

    一.python下载安装requests库 1.到git下载源码zip源码https://github.com/requests/requests 2.解压到python目录下: 3.“win+R”进 ...

  6. 【tensorflow】1.安装Tensorflow开发环境,安装Python 的IDE--PyCharm

    ================================================== 安装Tensorflow开发环境,安装Python 的IDE--PyCharm 1.PyCharm ...

  7. python上安装requests

    首先需要配置好python的环境变量. 测试是否成功配置,进入命令行,输入python. 如下图为配置成功. 去第三方库的网站下载安装包,解压在python的安装目录 ,下载地址:https://py ...

  8. python pip安装requests库总提示:Fatal error in launcher...''

      1.python pip安装提示:Fatal error in launcher...'' 我查看了网上都说是电脑同时安装了python2  和python3时候才会有这个错误,但实际上我电脑只安 ...

  9. ubuntu 上用virtualenv安装python不同版本的开发环境。

    1.用pip安装virtualenv apt-get install python-virtualenv 2.创建python2的虚拟环境,进入要创建虚拟环境的目录下,我是放在/home/pyenv/ ...

随机推荐

  1. js原生获取className&多选一

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. Spring 学习一

    Spring工作机制及为什么要用? 1.springmvc将所有的请求都提交给DispacherServlet,他会委托应用系统的其他模块负责对请求进行真正的处理工作. 2.DispacherServ ...

  3. 入门Android开发

    一个工作1年多一点的前端狗,由于公司需要,开始接触Android,也是第一次写博客,以后学到的技术每天都会写篇博客,让我们一起进步. Android 系统开发应用程序,为我们提供了哪些东西. 一.四大 ...

  4. 简约的HTML5音乐播放器插件

    从我刚开始接触前端的时候就想写一个能播放音乐的小程序,刚开始写的时候虽然可以放,但是确实很慢,很卡,有很多可以优化的地方.最近在前一个版本的基础上重写了一个音乐播放器的插件,速度还可以吧 因为追求简约 ...

  5. mybatis学习笔记(二)-- 使用mybatisUtil工具类体验基于xml和注解实现

    项目结构  基础入门可参考:mybatis学习笔记(一)-- 简单入门(附测试Demo详细过程) 开始体验 1.新建项目,新建类MybatisUtil.java,路径:src/util/Mybatis ...

  6. Unity3D文件读取

    Resources: 是作为一个Unity3D的保留文件夹出现的,也就是如果你新建的文件夹的名字叫Resources,那么里面的内容在打包时都会被无条件的打到发布包中.它的特点简单总结一下就是: 只读 ...

  7. 微信公众号调用JS-SDK

    坑:先设置js接口安全域名,在公众号设置-功能设置-js接口安全域名中设置 授权登录功能需要在开发者中心页配置授权回调域名 文档:http://mp.weixin.qq.com/wiki/7/aaa1 ...

  8. 全网首创ISE入门级教程

    转眼间我已经大三了,现在成为了实验室的负责人,对于下一届学生的纳新重任就交到了我的手上,想采取不同的方法暑假尽可能对他们进行一些培训,所以制作了此教程,说实话,在网上还没有找到关于ISE的入门级使用教 ...

  9. git合并历史提交

    背景 以前一直觉得只要pull和push就够了,但合作中总会遇到各种非理想的情况.这时候才发现git其他命令的作用. 现在的情况是,repo是一个远程team维护的,我们需要增加新feature,那么 ...

  10. TCP简单通讯

    客户端代码: package com.kaige123.net01; import java.io.IOException; import java.io.InputStream; import ja ...