Python 采集数据三步曲之[Requests开源协议的HTTP 库]

作者:J.sky · 发表于:
2017-09-02T09:01:48.000000Z
· 更新于:
2023-08-13T22:54:33.203525Z
· Tag: Python基础

Requests 是以 PEP 20 的箴言为中心开发的

  • Beautiful is better than ugly.(美丽优于丑陋)
  • Explicit is better than implicit.(直白优于含蓄)
  • Simple is better than complex.(简单优于复杂)
  • Complex is better than complicated.(复杂优于繁琐)
  • Readability counts.(可读性很重要)
  • 对于 Requests 所有的贡献都应牢记这些重要的准则。

Requests install

pip3 install requests

下载安装

git clone git://github.com/kennethreitz/requests.git
cd requests
python setup.py install

一分钟上手

import requests
r = requests.get('http://www.baidu.com')
print(r.status_code)# 返回状态码
r.encoding = 'utf-8'# 设置编码
print(r.text) #返回html代码

如果不算import及打印状态码,三行搞定网页html代码的解析下载,简单不?只要会了这个,采集数据解析html就易如翻掌:)

带参数的请求

r = requests.get('http://dict.baidu.com/s', params={'wd':'python'})
r.encoding = 'utf-8'# 设置编码
print(r.text) #返回html代码
  • r.status_code #响应状态码
  • r.raw #返回原始响应体,也就是 urllib 的 response 对象,使用 r.raw.read() 读取
  • r.content #字节方式的响应体,会自动为你解码 gzip 和 deflate 压缩
  • r.text #字符串方式的响应体,会自动根据响应头部的字符编码进行解码
  • r.headers #以字典对象存储服务器响应头,但是这个字典比较特殊,字典键不区分大小写,若键不存在则返回None
  • r.json() #Requests中内置的JSON解码器
  • r.raise_for_status() #失败请求(非200响应)抛出异常

这只是一个简单的入门引导

Requests 是一个简单强大的HTTP库,是我用过的最简单实用的python库,喜欢上她不会有任何理由,绝对是数据采集,响应分析,pythoner居家旅游必备之良品。

一些Requests的参考

本文源码下载: