文档章节

Python requests 安装与开发

mimvp
 mimvp
发布于 2017/08/16 11:05
字数 741
阅读 35
收藏 1

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 安装与开发

 

© 著作权归作者所有

mimvp
粉丝 3
博文 10
码字总数 12572
作品 0
CEO
私信 提问
Mac下python2与python3共存问题

python从入门到放弃; mac os系统里面自带了python2,当我们需要学习python3的时候就要自己安装python3,就会出现python2与python3共存。新手不懂就会出现一系列的问题。 比如安装库的时候就...

服说八道
2018/01/05
0
0
Mac 下安装requests、mock

安装requests: 电脑上Python有多个版本时,会安装到其他版本上 安装:pip install requests检查:终端 python -> import requests,无报错,安装成功提示找不到模块,说明安装到了其他版本P...

xiaobai1315
03/14
30
0
ImportError: No module named 'requests'

补充说明: 当前环境是在windows环境下 python版本是:python 3.4. 刚开始学习python,一边看书一边论坛里阅读感兴趣的代码, http://www.oschina.net/code/snippet140626643470 的代码运行报...

庸夫俗子
2014/11/06
49.3K
0
Python写入InfluxDB

InfluxDB是一个开源的时序数据库,使用GO语言开发,特别适合用于处理和分析资源监控数据这种时序相关数据。而InfluxDB自带的各种特殊函数如求标准差,随机取样数据,统计数据变化比等,使数据...

时光不写博客
07/18
0
0
python webservice hello world

最近在搞基于python的webservice项目,今天为把环境给配好,折腾了不少时间,还是把配的过程记录下来,以后备用: 首先你系统上要有python,这个不必说啦,我系统上用的是2.7+ 其次,要用pyt...

volador
2012/09/18
5.6K
2

没有更多内容

加载失败,请刷新页面

加载更多

Android面试常客之Handler全解

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/fnhfire_7030/article/details/79518819 前言:又到了一年...

shzwork
6分钟前
0
0
position sticky 定位

本文转载于:专业的前端网站➫position sticky 定位 1、兼容性 https://caniuse.com/#search=sticky chrome、ios和firefox兼容性良好。 2、使用场景 sticky:粘性。粘性布局。 在屏幕范围内时...

前端老手
13分钟前
1
0
CentOS 7 yum 安装 PHP7.3 教程

参考:https://www.mf8.biz/centos-rhel-install-php7-3/ 1、首先安装 EPEL 源: yum install epel-release 安装 REMI 源: yum install http://rpms.remirepo.net/enterprise/remi-release......

dragon_tech
28分钟前
1
0
Linux物理网卡聚合及桥接

Linux内部实现的bridge可以把一台机器上的多张网卡桥接起来,从而把自己作为一台交换机。同时,LInux bridge还支持虚拟端口,即桥接的不一定都是物理网卡接口,还可以是虚拟接口。目前主要表...

xiangyunyan
29分钟前
1
0
一起来学Java8(一)——函数式编程

在这篇文章中,我们将了解到在Java8下如何进行函数式编程。 函数式编程 所谓的函数式编程就是把函数名字当做值进行传递,然后接收方拿到这个函数名进行调用。 首先来看下JavaScript如何进行函...

猿敲月下码
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部