前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python requests 安装与开发

Python requests 安装与开发

作者头像
阳光岛主
发布2019-02-18 15:21:25
1.7K0
发布2019-02-18 15:21:25
举报
文章被收录于专栏:米扑专栏米扑专栏

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

验证安装:

1234567

$ pythonPython 2.7.13 (v2.7.13:a06454b1afa1, Dec 17 2016, 12:39:47) [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwinType "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. 爬取网页

1234567891011

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()

或者

1234

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

requests 接口格式:

123456

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 接口示例:

123

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

Requests 设置代理

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263

#!/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 requestsimport sslimport 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, httpsproxies = {             "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)   # 使用代理 socks4proxies = {             '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)   # 使用代理 socks5proxies = {             '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 安装与开发

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017年08月16日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
测试服务
测试服务 WeTest 包括标准兼容测试、专家兼容测试、手游安全测试、远程调试等多款产品,服务于海量腾讯精品游戏,涵盖兼容测试、压力测试、性能测试、安全测试、远程调试等多个方向,立体化安全防护体系,保卫您的信息安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档