python爬虫 - python requests网络请求简洁之道

http://blog.csdn.net/pipisorry/article/details/48086195

requests简介

requests是python的一个HTTP客户端库,跟urllib,urllib2类似,但是python的标准库urllib2提供了大部分需要的HTTP功能,但是API太逆天了,一个简单的功能就需要一大堆代码。

Requests 使用的是 urllib3,因此继承了它的所有特性。Requests 支持 HTTP 连接保持和连接池,支持使用 cookie 保持会话,支持文件上传,支持自动确定响应内容的编码,支持国际化的 URL 和 POST 数据自动编码。现代、国际化、人性化。

requests的功能特性

Requests 完全满足如今网络的需求:

国际化域名和 URLs

Keep-Alive & 连接池

持久的 Cookie 会话

类浏览器式的 SSL 加密认证

基本/摘要式的身份认证

优雅的键/值 Cookies

自动解压

Unicode 编码的响应体

多段文件上传

连接超时

支持 .netrc

适用于 Python 2.6—3.4

线程安全

皮皮Blog

requests和python自带urllib的对比

py2:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import urllib2

gh_url = 'https://api.github.com'

req = urllib2.Request(gh_url)

password_manager = urllib2.HTTPPasswordMgrWithDefaultRealm()
password_manager.add_password(None, gh_url, 'user', 'pass')

auth_manager = urllib2.HTTPBasicAuthHandler(password_manager)
opener = urllib2.build_opener(auth_manager)

urllib2.install_opener(opener)

handler = urllib2.urlopen(req)

print handler.getcode()
print handler.headers.getheader('content-type')

# ------
# 200
# 'application/json'

requests:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import requests

r = requests.get('https://api.github.com', auth=('user', 'pass'))

print r.status_code
print r.headers['content-type']

# ------
# 200
# 'application/json'

皮皮Blog

[urllib2 vs requests]

requests使用举栗

安装

pip install requests

基本使用

  >>>import requests  >>> r = requests.get(‘http://www.****.com‘)  # 发送请求  >>> r.status_code  # 返回码 200  >>> r.headers[‘content-type‘]  # 返回头部信息‘text/html; charset=utf8‘  >>> r.encoding  # 编码信息‘utf-8‘  >>> r.text  #内容部分(如果存在编码问题,也可以使用r.content)  u‘<!DOCTYPE html>\n<html xmlns="http://www.***/xhtml"...‘...

各种不同HTTP请求

  >>> r = requests.post("http://httpbin.org/post")  >>> r = requests.put("http://httpbin.org/put")  >>> r = requests.delete("http://httpbin.org/delete")  >>> r = requests.head("http://httpbin.org/get")  >>> r = requests.options("http://httpbin.org/get")

带参数的请求

  >>> payload = {‘wd‘: ‘张亚楠‘, ‘rn‘: ‘100‘}  >>> r = requests.get("http://www.baidu.com/s", params=payload)  >>> print r.url  u‘http://www.baidu.com/s?rn=100&wd=%E5%BC%A0%E4%BA%9A%E6%A5%A0‘

Note: 这里的params可以不用自己进行urlencode的。

获取json结果

  >>>r = requests.get(‘...‘)
  >>>r.json()[‘data‘][‘country‘]
  ‘中国‘

皮皮Blog

python3 httplib2

不过小编皮皮告诉大家另一种python3的简洁网络请求之道

import httplib2

h = httplib2.Http(".cache")
h.add_credentials('user', 'pass')
r, content = h.request("https://api.github.com", "GET")

print r['status']
print r['content-type']

Note: 也是等同requests的几行代码啊![urllib2 vs requests]

from:http://blog.csdn.net/pipisorry/article/details/48086195

ref:Requests: HTTP for Humans

版权声明:本文为博主http://blog.csdn.net/pipisorry原创文章,未经博主允许不得转载。

时间: 2024-11-09 03:42:41

python爬虫 - python requests网络请求简洁之道的相关文章

python学习笔记-day8-3-【python 网络请求及requests模块】

python的网络请求,主要是进行Http协议类接口调用,进行接口测试等. 一.urllib库,python内嵌的库,不太好用. from urllib import request,parse import json # url = 'http://baidu.com' # req = request.urlopen(url) #打开一个url # content = req.read().decode() # fw = open('nnzhp.html', 'w', encoding='ut

Python爬虫准备——requests和bs4安装

昨天想要写一下Python爬虫试试,但没想到导入的包并没有安装好.有两个这样的包,requests和bs4,requests是网络请求,bs4是html解析器. 那么接下来就说一下如何安装这两个包 一.用指令安装(pip install ……) 大体上来说就是,打开DOS(命令提示符),进入到你安装Python环境的目录下,找到Scripts目录并进入,然后执行指令 进入DOS有两种方法: 1.Win+R,输入cmd 然后点击确定即可进入 2.Win+S,打开搜索框,搜索cmd并进入 进入以后,

Python爬虫之-Requests

Requests模块 Python标准库中提供了:urllib.urllib2.httplib等模块以供Http请求,但是,它的 API 太渣了. 它是为另一个时代.另一个互联网所创建的.它需要巨量的工作,甚至包括各种方法覆盖,来完成最简单的任务. Requests 是使用 Apache2 Licensed 许可证的 基于Python开发的HTTP 库,其在Python内置模块的基础上进行了高度的封装; 从而使得Pythoner进行网络请求时,变得方便了许多,使用Requests可以轻而易举的完

python爬虫之requests+selenium+BeautifulSoup

前言: 环境配置:windows64.python3.4 requests库基本操作: 1.安装:pip install requests 2.功能:使用 requests 发送网络请求,可以实现跟浏览器一样发送各种HTTP请求来获取网站的数据. 3.命令集操作: import requests # 导入requests模块 r = requests.get("https://api.github.com/events") # 获取某个网页 # 设置超时,在timeout设定的秒数时间

python爬虫之requests库

requests库介绍 发送http请求的第三方库,兼容python2和python3 安装: pip install requests 使用: import requests发送请求response = requests.get(url)response = requests.post(url) 响应内容请求返回的值是一个response对象,是对http协议服务端返回数据的封装response对象主要属性和方法: response.status_code  返回码  response.hea

Python爬虫之Requests库入门

目录 Requests库 Requests库的7个主要方法 Requests库的get()方法 Response对象的属性 理解Requests库的异常 爬取网页的通用代码框架 HTTP协议 协议对资源的操作 理解PATCH和PUT的区别 HTTP协议与Requests库 Requests库 Requests库的7个主要方法 方法 说明 requests.request() 构造一个请求,支撑以下各方法的基础方法 requests.get() 获取HTML网页的主要方法,对应于HTTP的GET

python 爬虫 基于requests模块的get请求

需求:爬取搜狗首页的页面数据 import requests # 1.指定url url = 'https://www.sogou.com/' # 2.发起get请求:get方法会返回请求成功的响应对象 response = requests.get(url=url) # 3.获取响应中的数据:text属性作用是可以获取响应对象中字符串形式的页面数据 page_data = response.text # 4.持久化数据 with open("sougou.html","w&

python 爬虫 基于requests模块发起ajax的get请求

基于requests模块发起ajax的get请求 需求:爬取豆瓣电影分类排行榜 https://movie.douban.com/中的电影详情数据 用抓包工具捉取 使用ajax加载页面的请求 鼠标往下下滚轮拖动页面,会加载更多的电影信息,这个局部刷新是当前页面发起的ajax请求, 用抓包工具捉取页面刷新的ajax的get请求,捉取滚轮在最底部时候发起的请求 这个get请求是本次发起的请求的url ajax的get请求携带参数 获取响应内容不再是页面数据,是json字符串,是通过异步请求获取的电影

python爬虫之requests的基本使用

简介 Requests是用python语言基于urllib编写的,采用的是Apache2 Licensed开源协议的HTTP库,Requests它会比urllib更加方便,可以节约我们大量的工作. 一.安装 pip快速安装 1 pip install requests 二.使用 1.先上一串代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 import requests response  = requests.get("https://www.baidu.com"