离线安装 Python requests 包

requests 是一个简单优雅的 Python HTTP 库,相较于 Python 标准库中的 urlliburllib2requests 更加的便于理解使用。

背景介绍

由于某地区热点事件持续升温,我们的客户想要通过我们系统的搜索功能导出一批数据,目前我们的搜索结果是不支持导出的,并且搜索功能也是通过调用几个子服务后对数据进行了合并,所以无法直接通过 ElasticSearch 来捞数据。

我们在评估需求后,预计编写这个统计程序大概需要 1 天的时间,但是客户认为事态紧急,当天就要结果,我们本着顾客就是上帝的原则,又进行了一番讨论,结论是可以写一个类似爬虫的工具,来「爬取」我们自己的搜索接口来拿到这些数据。

Python 来实现最合适不过,而且我对编写爬虫也比较熟悉,所以就采用了最简单粗暴的方法:用 requests 包作为一个 HTTP Client 来收发请求,但是客户现场是个离线环境,之前我们也没有安装过 requests,所以才有了本文:在离线环境中安装 requests

正文

资源准备

为方便后期使用,我将所有用到的文件打包在了一起,可直接解压使用,无需从网上东奔西走寻找资源。

压缩包内涉及到的文件如下:

1
2
3
4
5
6
7
setuptools-41.1.0.post1.tar
pip-19.2.2.tar.gz
certifi-2019.9.11-py2.py3-none-any.whl
chardet-3.0.4-py2.py3-none-any.whl
idna-2.8-py2.py3-none-any.whl
urllib3-1.25.7-py2.py3-none-any.whl
requests-2.22.0.tar.gz

打包资源下载链接:http://developer.jpanj.com/requests-offline.tar.gz

安装

解压 requests-offline.tar.gz 后进入 requests-offline 目录开始安装。

安装 setuptools

setuptools 能帮助我们更好的创建和分发 Python 的包,尤其是具有复杂依赖关系的包。

1
2
3
tar -zxvf setuptools-41.1.0.post1.tar.gz
cd setuptools-41.1.0.post1/
python setup.py install

安装 pip

pip 是 Python 官方推荐的包管理工具。

1
2
3
tar -zxvf pip-19.2.2.tar.gz
cd pip-19.2.2/
python setup.py install

安装 requests 所需的其他依赖

1
2
3
4
5
6
7
8
# CA 认证模块
pip install certifi-2019.9.11-py2.py3-none-any.whl
# 字符编码检测模块
pip install chardet-3.0.4-py2.py3-none-any.whl
# 域名解析模块
pip install idna-2.8-py2.py3-none-any.whl
# 线程安全的 HTTP 库
pip install urllib3-1.25.7-py2.py3-none-any.whl

安装 requests

1
2
3
tar -zxvf requests-2.22.0.tar.gz
cd requests-2.22.0/
python setup.py install

测试是否成功成功

1
2
➜ python
>>> import requests

后记

客户是下午两点半提出的需求,内部讨论好实现方案后三点半,我在准备好安装 requests 所需资源后直接奔赴现场,而不是在公司编码完再过去,因为我相信只要有我们的人到达现场客户就可以踏下心来了,同时我也想挑战一下自己,所以本次点亮了一个技能点:现场使用 vi 进行 coding 和 debug。