0%

安装配置

Numpy 是 Python 中的一个科学计算库,功能非常强大。

相关链接

  • 官网:https://numpy.org/
  • 文档:https://numpy.org/doc/stable/
  • 中文教程:https://www.runoob.com/numpy/numpy-tutorial.html

安装方法

pip 安装

推荐使用 pip3 安装,命令如下:

1
pip3 install numpy

命令执行完毕之后即可完成安装。

验证安装

安装完成之后,可以在 Python 命令行下测试。

1
2
$ python3
>>> import numpy

如果没有错误报出,则证明库已经安装好了。

安装配置

Pyppeteer 是一个自动化测试框架,是 Puppteer 的 Python 版本。

相关链接

  • GitHub:https://github.com/pyppeteer/pyppeteer
  • 文档:https://pyppeteer.github.io/pyppeteer/

安装

pip 安装

推荐使用 pip3 安装,命令如下:

1
pip3 install pyppeteer

命令执行完毕之后即可完成安装。

安装完成之后可以运行如下命令进行一些初始化操作:

1
pyppeteer-install

运行之后 Pyppeteer 会下载一个 Chromium 浏览器并配置好环境变量。

验证安装

安装完成之后,可以在 Python 命令行下测试。

1
2
$ python3
>>> import pyppeteer

如果没有错误报出,则证明库已经安装好了。

另外还可以运行测试脚本:

1
2
3
4
5
6
7
8
9
10
11
import asyncio
from pyppeteer import launch

async def main():
browser = await launch()
page = await browser.newPage()
await page.goto('https://www.baidu.com')
await page.screenshot({'path': 'baidu.png'})
await browser.close()

asyncio.get_event_loop().run_until_complete(main())

运行之后,如果之前没有运行过 pyppeteer-install 命令的话,Pyppeteer 会进行一些初始化配置,运行完毕之后,就会启动浏览器,然后访问百度,生成截图。

安装配置

Motor 是 PyMongo 的支持异步的库。

相关链接

  • 文档:https://motor.readthedocs.io/en/stable/
  • GitHub:https://github.com/mongodb/motor
  • PyPi: https://pypi.org/project/motor/

安装

pip 安装

推荐使用 pip3 安装,命令如下:

1
pip3 install motor

命令执行完毕之后即可完成安装。

验证安装

安装完成之后,可以在 Python 命令行下测试。

1
2
$ python3
>>> import motor

如果没有错误报出,则证明库已经安装好了。

安装配置

Redis 是一个基于内存的高效的非关系型数据库,本节我们来了解下 Redis 在各个平台的安装过程。

相关链接

  • 官方网站:https://redis.io
  • 官方文档:https://redis.io/documentation
  • 中文官网:http://www.redis.cn
  • GitHub:https://github.com/antirez/redis
  • 中文教程:http://www.runoob.com/redis/redis-tutorial.html
  • Redis Desktop Manager:https://redisdesktop.com
  • Redis Desktop Manager GitHub:https://github.com/uglide/RedisDesktopManager

Windows 下的安装

Redis 在 Windows 下可以直接到 https://redis.io/downloadhttps://nowjava.com/download/31283 下载。

安装过程比较简单,直接点击下一步安装即可,安装完成之后 Redis 便会启动。

在系统服务里可以观察到多了一个正在运行到 Redis 服务,如图所示:

img

另外推荐下载一个 Redis Desktop Manager 可视化管理工具,来管理 Redis。

可以到官方网站下载,链接为:https://redisdesktop.com/download 也可以到 GitHub 下载最新发行版本,链接为:https://github.com/uglide/RedisDesktopManager/releases

安装之后直接连接本地 Redis 即可,简单方便。

Linux 下的安装

这里依然还是分为两类平台介绍。

Ubuntu、Debian、Deepin

使用 apt-get 命令行安装:

1
sudo apt-get -y install redis-server

运行如上命令即可完成 Redis 的安装,然后输入 redis-cli 即可进入 Redis 命令行模式。

1
2
3
4
5
$ redis-cli
127.0.0.1:6379> set 'name' 'Germey'
OK
127.0.0.1:6379> get 'name'
"Germey"

这样就证明 Redis 成功安装了,但是现在 Redis 还是无法远程连接的,依然需要修改配置文件,配置文件路径为 /etc/redis/redis.conf。

注释这一行:

1
bind 127.0.0.1

另外推荐给 Redis 设置密码,取消注释这一行:

1
requirepass foobared

foobared 即当前密码,可以自行修改。

然后重启 Redis 服务,使用如下命令:

1
sudo /etc/init.d/redis-server restart

现在就可以使用密码远程连接 Redis 了。

另外停止和启动 Redis 服务的命令如下:

1
2
sudo /etc/init.d/redis-server stop
sudo /etc/init.d/redis-server start

CentOS、RedHat

首先添加 EPEL 仓库,然后更新 Yum 源:

1
2
sudo yum install epel-release
sudo yum update

然后安装 Redis 数据库:

1
sudo yum -y install redis

安装好之后启动 Redis 服务:

1
sudo systemctl start redis

同样可以使用 redis-cli 进入 Redis 命令行模式操作。

另外为了可以使 Redis 能被远程连接,需要修改配置文件,路径为 /etc/redis.conf。

注释这一行:

1
bind 127.0.0.1

另外推荐给 Redis 设置密码,取消注释这一行:

1
requirepass foobared

foobared 即当前密码,可以自行修改。

之后保存重启 Redis 服务:

1
sudo systemctl restart redis

这样就可以远程连接 Redis 了。

Mac 下的安装

推荐使用 Homenbrew 安装,执行 brew 命令即可。

1
brew install redis

启动 Redis 服务:

1
2
brew services start redis
redis-server /usr/local/etc/redis.conf

这样就启动了 Redis 服务。

同样可以使用 redis-cli 进入 Redis 命令行模式。

Mac 下 Redis 的配置文件路径是 /usr/local/etc/redis.conf,可以通过修改它来配置访问密码。

修改配置文件后需要重启 Redis 服务,停止、重启 Redis 服务的命令如下:

1
2
brew services stop redis
brew services restart redis

另外在 Mac 下也可以安装 Redis Desktop Manager 可视化管理工具来管理 Redis。

安装配置

retrying 提供了一些装饰器,使得我们非常方便地配置重试机制。

本节我们了解下 retrying 的安装方式。

相关链接

  • GitHub:https://github.com/rholder/retrying
  • PyPi:https://pypi.org/project/retrying/

安装方法

pip 安装

推荐使用 pip3 安装,命令如下:

1
pip3 install retrying

命令执行完毕之后即可完成安装。

验证安装

安装完成之后,可以在 Python 命令行下测试。

1
2
$ python3
>>> import retrying

如果没有错误报出,则证明库已经安装好了。

安装配置

Xposed 框架是一套开源的,在 Android 高权限模式下运行的框架服务,它可以在不修改 App 源码的情况下影响程序运行(修改系统)的框架服务。基于 Xposed,可以制作出许多功能强大的模块,且在功能不冲突的情况下同时运作。

其实现原理我们稍作了解即可:Xposed 框架的原理是通过替换系统级别的 /system/bin/app_process 程序控制 zygote 进程,使得app_process 在启动过程中加载 XposedBridge.jar,这个 jar 包里面定义了对系统方法、属性的一系列 Hook 操作,同时还提供了几个 Hook API 供我们编写 Xposed 模块使用。我们在编写 Xposed 模块时,引用 Xposed 提供的几个 Hook 方法就可以实现对系统级别任意方法和属性的修改了。

安装

请移步:https://cn.sync-computers.com/how-install-xposed-framework

安装配置

ElasticSearch 是一个分布式的,高性能,高可用的,可伸缩的搜索和分析系统

(1)可以作为大型分布式集群(数百台服务器)技术,处理 PB 级的数据,服务大公司;也可以运行在单机上服务于小公司

(2)Elasticsearch 不是什么新技术,主要是将全文检索、数据分析以及分布式技术,合并在了一起,才形成了独一无二的 ES:lucene(全文检索),商用的数据分析软件,分布式数据库

(3)对用户而言,是开箱即用的,非常简单,作为中小型应用,直接 3 分钟部署一下 ES,就可以作为生产环境的系统来使用了,此时的场景是数据量不大,操作不是太复杂

(4)数据库的功能面对很多领域是不够用的(事务,还有各种联机事务型的操作);

特殊的功能,比如全文检索,同义词处理,相关度排名,复杂数据分析,海量数据的近实时处理,Elasticsearch 作为传统数据库的一个补充,提供了数据库所不能提供的很多功能。

安装教程

最官方的安装指南当属官网了,到 https://www.elastic.co/cn/downloads/elasticsearch 直接下载即可。

这里提供了各种系统的下载安装包,目前最新版本是 7.x。

下载完成之后,可以直接参考官网的教程来启动:

其实基本内容就是两步:

  • 解压下载的 zip 压缩文件
  • 直接运行 bin 目录下的 elasticsearch 脚本即可启动

启动之后,Elasticsearch 就会在 9200 端口上运行,这时候我们通过浏览器打开就会看到类似如下的输出:

这就证明 Elasticsearch 安装成功了。

另外 Elasticsearch 还有一个配套的可视化管理工具,叫做 Kibana,安装教程可以参考 https://www.elastic.co/cn/downloads/kibana,安装方式同 Elasticsearch。

安装配置

IntelliJ IDEA 是 java 语言开发的集成环境,在业界被公认为最好的 java 开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE 支持、各类版本工具(git、svn 等)、JUnit、CVS 整合、代码分析、 创新的 GUI 设计等方面的功能可以说是超常的。

安装

可以直接到官网 https://www.jetbrains.com/idea/download/ 下载对应的安装包,Windows、Mac、Linux 都有,如图所示:

其中 Ultimate 版本就是专业版,功能齐全而又强大,有 30 天的免费试用,而 Community 就是社区版,功能稍弱,但是永久免费。

其实一般来说,打开一个普通 Java 项目,社区版就足够了。

如果你想用专业版的话,如果 License 过期了,可以自行购买,或者网上找一些免费的 License,另外还可以申请 GitHub 大礼包:https://education.github.com/pack,申请完了之后就可以获得免费订阅了,如图所示:

整个下载安装的过程不再赘述,基本没有什么坑。

安装配置

JEB 是由 PNF 软件(PNF Software)机构开发的一款专业的安卓应用程序的反编译工具,适用于逆向和审计工程,功能非常强大。相比 jadx 来说,JEB 不仅仅支持安卓 apk 的反编译,安卓应用的动态调试,还支持 ARM、MIPS、AVR、Intel-x86、WebAssembly、Ethereum(以太坊)等程序的反编译、反汇编、动态调试等功能,另外还能对一些 PDF 文件进行解析和处理,是一个极其强大的综合性逆向和审计工具。

由于本章的主要内容和安卓逆向相关,所以我们主要关注其和安卓相关的功能。对于安卓应用来说,JEB 主要提供如下功能:

  • 可以对安卓应用程序和 Dalvik(Android 虚拟机,类似 Java 中的 JVM)字节码执行精确和快速的反编译操作。
  • 内置的分析模块可以对高度混淆的代码可以提供虚拟层次化重构,对混淆代码的分析很有帮助。
  • 可以对接 JEB API 来执行一些逆向任务,支持 Java 和 Python 来编写自动化逆向脚本。

JEB 支持 Windows、Linux、Mac 三大平台,其官网地址为 https://www.pnfsoftware.com,目前主要分为三个版本:JEB CE(社区版)、JEB Android(安卓版)、JEB Pro(专业版)。JEB CE 提供了一些基础的功能,如支持 dex 文件的反编译,支持 Intel-x86 的反编译和反汇编,但不支持 Dalvik 字节码的反编译等功能。JEB Android 则更专注于安卓,支持 dex 文件的反编译,也支持 Dalvik 字节码的反编译和反汇编,JEB Pro 则是“完全体”,支持官网所介绍的所有的功能。具体的功能对比可以参考官网的介绍:https://www.pnfsoftware.com/jeb。三个版本中,JEB CE 是免费的,JEB Android 和 JEB Pro 都是收费的,需要购买许可证才可以使用。

安装

如果从官方网站直接下载的话,一些 Android 功能是没法用的,这里建议下载社区大佬们提供的破解版,请移步:https://bbs.pediy.com/thread-268316.htm

另外这里我也准备了一个安装包,链接: https://pan.baidu.com/s/1GyMCbJwjfiNjv9zSBWcoow 提取码: e53q

备用链接(另一个版本的安装包): https://pan.baidu.com/s/1DXTqwWMrLJ-YhPb0zgZKyQ 提取码: 4m49

下载完成,解压后会得到如下的文件目录:

这里有三个运行脚本,分别适配 Windows、Linux、Mac,分别运行 jeb_wincon.bat、jeb_linux.sh、jeb_macos.sh 即可。

如 Mac 下就可以运行:

1
sh jeb_macos.sh

运行之后会出现如下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Memory Usage: 981.5M allocated (144.9M used, 836.6M free) - max: 14.2G
JEB 4.3.0.202107131915 (jeb-ce) is starting...
Current directory: /usr/local/etc/jeb
Base directory: /usr/local/etc/jeb
Program directory: /usr/local/etc/jeb/bin
System: Mac OS X 11.5.2 (x86_64) en_CN
Java: Oracle Corporation 1.8.0_282
External plugin loaded: com.pnf.plugin.androidjnihelper.DynamicJNIDetectionPlugin
External plugin loaded: com.pnf.androsig.gen.AndroidSigGenPlugin
External plugin loaded: com.pnf.androsig.apply.andsig.AndroidSigApplyPlugin
External plugin loaded: com.pnf.plugin.oat.OATPlugin
External plugin loaded: com.pnf.plugin.pdf.PdfPlugin
External plugin loaded: com.pnf.diemvm.DiemIdentifier
External plugin loaded: com.pnf.diemvm.DiemDisassemblerPlugin
External plugin loaded: com.pnf.diemvm.DiemDecompilerPlugin
Checking for update...

接着就会弹出 JEB 的窗口,如图所示:

然后就可以使用了。

安装配置

jadx 是一款使用广泛的反编译工具,可以一键把 apk 文件还原成 Java 代码,使用起来简单,功能 强大,还具有一些附加功能可以辅助代码追查。

相关链接

  • GitHub:https://github.com/skylot/jadx

安装方法

Windows

直接到 GitHub 下载对应的 Release 包即可:https://github.com/skylot/jadx/releases。

下载之后直接解压即可。

解压之后会得到一个 bin 目录,进入 bin 目录直接运行 jdax 和 jadx-gui 即可,Windows 可以直接双击 jadx.bat 或 jadx-gui.bat 即可运行。

Mac

对于 Mac 来说,可以直接使用 Homebrew 安装:

1
brew install jadx

Linux

1
sudo pacman -S jadx

更多安装说明可以参考:https://github.com/skylot/jadx。

验证安装

只要 jadx 和 jadx-gui 能正常启动,就证明安装成功了。

安装配置

本节我们了解下 parsel 的安装方式。

相关链接

  • GitHub:https://github.com/scrapy/parsel
  • PyPi:https://pypi.org/project/parsel/
  • 官方文档:https://parsel.readthedocs.io/

安装方法

pip 安装

推荐使用 pip3 安装,命令如下:

1
pip3 install parsel

命令执行完毕之后即可完成安装。

验证安装

安装完成之后,可以在 Python 命令行下测试。

1
2
$ python3
>>> import parsel

如果没有错误报出,则证明库已经安装好了。

安装配置

adbutils 是 Python 中 adb 命令行的封装包。

相关链接

  • GitHub:https://github.com/openatx/adbutils
  • PyPi:https://pypi.org/project/adbutils/

安装方法

pip 安装

推荐使用 pip3 安装,命令如下:

1
pip3 install adbutils

命令执行完毕之后即可完成安装。

验证安装

安装完成之后,可以在 Python 命令行下测试,另外确保你的手机已经和电脑通过 USB 或无线的方式连接好了,运行如下代码:

1
2
3
4
import adbutils

adb = adbutils.AdbClient(host="127.0.0.1", port=5037)
print(adb.devices())

如果没有错误报出,而且输出了 Device 相关信息,则证明库已经安装好了。

安装配置

下面是一些群控系统服务网站(不定期更新):

掘金网安卓群控系统:https://www.54nb.com/androids/

侠客科技:https://www.xiake.vip/

智互云客:http://www.zh-auto.org/

智云控:http://www.zhiyunkong.com/

鹰眼:http://ent.mobileanjian.com/

阿云梯:https://www.ayunti.cn/

河马云:http://www.longene.com.cn/

四方来客:http://www.zhiboyk.com/

安装配置

Airtest Project 是由网易游戏推出的一款自动化测试框架,项目构成如下:

  • Airtest:一个跨平台的、基于图像识别的 UI 自动化测试框架,适用于游戏和 App,支持的平台有 Windows、Android 和 iOS,基于 Python 实现。
  • Poco:一款基于 UI 控件识别的自动化测试框架,目前支持 Unity3D、cocos2dx、Android 原生 App、iOS 原生 App 和微信小程序,也可以在其他引擎中自行接入 poco-sdk 来使用,基于 Python 实现。
  • AirtestIDE:提供了一个跨平台的 UI 自动化测试编辑器,内置了 Airtest 和 Poco 的相关插件功能,使用它能够快速简单地编写AirtestPoco代码。
  • AirLab:真机自动化云测试平台,目前提供了 Top 100 手机兼容性测试、海外云真机兼容性测试等服务。
  • 私有化手机集群技术方案:从硬件到软件,提供了企业内部私有化手机集群的解决方案。

总之,Airtest 建立了一个比较完善的自动化测试解决方案,利用 Airtest 我们能实现类似 Appium 一样可见即可爬的爬取,相对 Appium 个人认为更加简单易用。

相关资源

  • 官网:https://airtest.netease.com/
  • 文档:https://airtest.doc.io.netease.com/

安装

要安装 Airtest,我们可能需要安装多个组件,比如 AirtestIDE、Poco、Airtest 库等。

对于 Airtest IDE 来说,请参考 https://airtest.doc.io.netease.com/IDEdocs/getting_started/AirtestIDE_install/ 里面的说明进行安装。

安装完 Airtest IDE 之后,它还会安装一个 Python 环境,同时该 Python 环境还附带安装了 Airtest Python 库和 Poco Python 库,不过这个 Python 环境被打包在 AirtestIDE 里面,和系统里面装的 Python 并不是同一个,所以,推荐直接使用 pip3 将 Airtest Python 库和 Poco Python 库安装到系统的 Python 环境下。

Airtest Python 库的安装命令如下:

1
pip3 install airtest

Poco Python 库的安装命令如下:

1
pip3 install pocoui

安装完成之后,可以在 AirtestIDE 中把默认 Python 环境更换成系统的 Python 环境,而不再是 AirtestIDE 附带的 Python 环境,打开 AirtestIDE 菜单的选项 - 设置,可以看到如下配置:

可以看到这里有一个选项叫做 “自定义 Python.exe 路径”,将其修改为系统的 Python 路径即可,具体的设置方法可以进一步参考:https://airtest.doc.io.netease.com/IDEdocs/3.4run_script/0_run_script/#4

安装好了 Airtest IDE、Airtest 和 Poco 的 Python 库之后,最后我们还需要准备一台 Android 真机或者模拟器,如果是真机还需要通过 USB 和 PC 相连,确保 adb 能够正常连接到手机,具体的设置方法可以参考:https://airtest.doc.io.netease.com/tutorial/1_quick_start_guide/#_4

安装配置

简单的说 Node.js 就是运行在服务端的 JavaScript。

Node.js 是一个基于 Chrome JavaScript 运行时建立的一个平台。

Node.js 是一个事件驱动 I/O 服务端 JavaScript 环境,基于 Google 的 V8 引擎,V8 引擎执行 Javascript 的速度非常快,性能非常好。

如果你是一个前端程序员,你不懂得像 PHP、Python 或 Ruby 等动态编程语言,然后你想创建自己的服务,那么 Node.js 是一个非常好的选择。

Node.js 是运行在服务端的 JavaScript,如果你熟悉 Javascript,那么你将会很容易的学会 Node.js。

相关链接

  • 官网:https://nodejs.org/
  • 文档:https://nodejs.org/en/docs/
  • 中文网:http://nodejs.cn/
  • GitHub:https://github.com/nodejs/node
  • 基础教程:https://www.runoob.com/nodejs/nodejs-tutorial.html

安装方法

由于 Node.js 频繁更新,请直接移步 Node.js 中文网介绍查看安装说明即可:http://nodejs.cn/learn/how-to-install-nodejs。

另外,个人也非常推荐使用 nvm 来安装 Node.js,有了 nvm,我们可以方便地管理多个 Node.js 版本,其实有点类似于 Python 虚拟环境的感觉,具体的安装说明可以参考:https://github.com/nvm-sh/nvm。

安装配置

本文介绍代理软件的配置,由于内容可能相对敏感,所以这里仅提供外链。

个人比较推荐的是:konan 点 ml,里面有很多套餐,同时教你怎么在各个平台(Windows、Mac、Linux、Android、iOS)上配置和运行对应的代理软件。

运行代理软件后会在本机创建 HTTP 或 SOCKS 代理服务,所以代理地址一 般是 127.0.0.1:<port> 这样的格式,不同代理软件使用的端口可能不同。

我的本机上安装着一个代理软件,它会在 7890 端口上创建 HTTP 代理服务,在 7891 端口上创建 SOCKS 代理服务,因此 HTTP 代理地址为 127.0.0.1:7890,SOCKS 代理地址为 127.0.0.1:7891,只要 设置了这个代理,就可以成功将本机 IP 切换到代理软件连接的服务器的 IP。

安装配置

Pillow 是 Python 的一个支持图像处理的库,本节我们了解下 Pillow 的安装方式。

相关链接

  • GitHub:https://github.com/python-pillow/Pillow
  • PyPi:https://pypi.org/project/Pillow/
  • 官方文档:https://pillow.readthedocs.io/en/stable/

安装方法

pip 安装

推荐使用 pip3 安装,命令如下:

1
pip3 install Pillow

命令执行完毕之后即可完成安装。

具体的 Python 版本支持可以参考 https://pillow.readthedocs.io/en/latest/installation.html 的说明,如图所示:

验证安装

安装完成之后,可以在 Python 命令行下测试。

1
2
$ python3
>>> import pillow

如果没有错误报出,则证明库已经安装好了。

安装配置

本节我们了解下 opencv-python 的安装方式。

相关链接

  • GitHub:https://github.com/opencv/opencv-python
  • PyPi:https://pypi.org/project/opencv-python/
  • 文档:https://docs.opencv.org/master/

安装方法

pip 安装

推荐使用 pip3 安装,命令如下:

1
pip3 install opencv-python

命令执行完毕之后即可完成安装。

另外,如果想要额外安装一些 contrib 模块的话,可以选择全量安装:

1
pip3 install opencv-contrib-python

更多安装说明可以参考:https://github.com/opencv/opencv-python。

验证安装

安装完成之后,可以在 Python 命令行下测试。

1
2
$ python3
>>> import cv2

如果没有错误报出,则证明库已经安装好了。

安装配置

PyTorch 是当今非常火爆的深度学习框架。

相关链接

  • 官网:https://pytorch.org/
  • GitHub:https://github.com/pytorch/pytorch
  • 官方文档:https://pytorch.org/docs/stable/index.html

安装方法

PyTorch 适配的平台有很多,官方也提供了安装教程,可以参考 https://pytorch.org/get-started/locally/,

打开之后可以看到有好多选项配置,让我们选择我们当前的环境是怎样的,如图所示:

比如这里我们可以选择版本、操作系统、包工具、开发语言、GPU 环境等等,选择之后,最后就会显示一条命令,比如这里的命令就是:

1
pip3 install torch==1.9.1+cu111 torchvision==0.10.1+cu111 torchaudio==0.9.1 -f https://download.pytorch.org/whl/torch_stable.html

这样的话我们只需要运行这条命令,那就可以在 Linux 上使用 pip 安装适配 CUDA 11.1 的 PyTorch 库了。

更详细的安装配置可以参考:https://pytorch.org/get-started/locally/。

安装配置

Playwright 是微软开源的自动化测试工具,也可以用作网络爬虫。

相关链接

  • GitHub:https://github.com/microsoft/playwright
  • 官方文档:https://playwright.dev/python/docs/intro

安装方法

pip 安装

推荐使用 pip3 安装,命令如下:

1
2
3
pip3 install --upgrade pip
pip3 install playwright
playwright install

命令执行完毕之后即可完成安装,其中最后一条命令,Playwright 会完成一些初始化的工作,比如下载必要的浏览器和配置对应驱动、环境变量等。

conda 安装

也可以使用 conda 安装,安装命令如下:

1
2
3
4
conda config --add channels conda-forge
conda config --add channels microsoft
conda install playwright
playwright install

效果是一样的。

验证安装

安装完成之后,可以在 Python 命令行下测试。

1
2
$ python3
>>> import playwright

如果没有错误报出,则证明库已经安装好了。

安装配置

MongoDB 是由 C++ 语言编写的非关系型数据库,是一个基于分布式文件存储的开源数据库系统,其内容存储形式类似 Json 对象,它的字段值可以包含其他文档,数组及文档数组,非常灵活。

MongoDB 支持多种平台,包括 Windows、Linux、Mac OS、Solaris 等,在其官方网站均可找到对应的安装包,https://www.mongodb.com/download-center

本节我们来看下它的安装过程。

相关链接

  • 官方网站:https://www.mongodb.com
  • 官方文档:https://docs.mongodb.com
  • GitHub:https://github.com/mongodb
  • 中文教程:http://www.runoob.com/mongodb/mongodb-tutorial.html

安装方法

Windows 下的安装

直接在官网下载安装包即可,链接为:https://www.mongodb.com/try/download/community,页面如图所示:

直接点击 Download 下载 msi 安装包即可。

下载完成之后双击开始安装,如图所示:

后面的安装模式选择 Complete 即可,如图所示:

点击之后可以看到一些 MongoDB 安装配置,如 data 文件夹、log 文件夹都在哪里,还有是否把 MongoDB 安装成系统服务,如图所示:

一直点击下一步安装即可。

安装完毕之后 MongoDB 也会被注册成一个 Windows 服务,而且已经启动,如图所示:

这里我们可以控制服务的开关,即 MongoDB 服务的开关。

这样 Windows 下 MongoDB 配置就完成了。

Linux 下的安装

完整的安装教程请参考:https://docs.mongodb.com/manual/administration/install-on-linux/,如下内容仅作参考。

在这里以 MongoDB 5.0 为例说明 MongoDB 的安装过程。

Ubuntu

首先导入 MongoDB 的 GPG Key:

1
wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -

随后创建 apt-get 源列表,各个系统版本对应的命令如下:

  • Ubuntu 20.04
1
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list
  • Ubuntu 18.04
1
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list

随后更新 apt-get 源:

1
sudo apt-get update

之后安装 MongoDB 即可:

1
sudo apt-get install -y mongodb-org

安装完成之后运行 MongoDB,命令如下:

1
sudo systemctl start mongod

运行命令之后 MongoDB 就在 27017 端口上运行了,数据文件会保存在 /data/db 路径下。

一般我们在 Linux 上配置 MongoDB 都是为了远程连接使用的,所以在这里还需要配置一下 MongoDB 的远程连接和用户名密码:

接着我们进入到 MongoDB 命令行:

1
mongo --port 27017

现在我们就已经进入到 MongoDB 的命令行交互模式下了,在此模式下运行如下命令:

1
2
3
4
5
6
7
8
9
10
11
12
> use admin
switched to db admin
> db.createUser({user: 'admin', pwd: 'admin123', roles: [{role: 'root', db: 'admin'}]})
Successfully added user: {
"user" : "admin",
"roles" : [
{
"role" : "root",
"db" : "admin"
}
]
}

这样我们就创建了一个用户名为 admin,密码为 admin123 的用户,赋予最高权限。

随后需要修改 MongoDB 的配置文件,

执行如下命令:

1
sudo vi /etc/mongod.conf

修改 net 部分为:

1
2
3
net:
port: 27017
bindIp: 0.0.0.0

这样配置后 MongoDB 可被远程访问。

另外还需要添加如下权限认证配置,直接添加如下内容到配置文件:

1
2
security:
authorization: enabled

配置完成之后我们需要重新启动 MongoDB 服务,命令如下:

1
sudo service mongod restart

这样远程连接和权限认证就配置完成了。

CentOS、RedHat

首先添加 MongoDB 源:

1
sudo vi /etc/yum.repos.d/mongodb-org.repo

修改为如下内容保存:

1
2
3
4
5
6
[mongodb-org-5.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/5.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-5.0.asc

然后执行 yum 命令安装:

1
sudo yum install mongodb-org

启动 MongoDB 服务:

1
sudo systemctl start mongod

停止和重新加载 MongoDB 服务:

1
2
sudo systemctl stop mongod
sudo systemctl reload mongod

有关远程连接和认证配置可以参考上文,方式是相同的。

更多 Linux 发行版的 MongoDB 安装方式可以参考官方文档:https://docs.mongodb.com/manual/administration/install-on-linux/。

Mac 下的安装

完整安装说明请参考:https://docs.mongodb.com/manual/tutorial/install-mongodb-on-os-x/,如下内容仅作参考。

首先确保一些依赖库已经正确安装了,运行如下命令:

1
xcode-select --install

推荐使用 Homebrew 安装,执行 brew 命令即可:

1
2
brew tap mongodb/brew
brew install mongodb-community@5.0

然后创建一个新文件夹 /data/db,用于存放 MongoDB 数据。

启动 MongoDB 服务:

1
brew services start mongodb-community@5.0

这样就启动了 MongoDB 服务。

停止、重启 MongoDB 服务的命令:

1
2
brew services stop mongodb-community@5.0
brew services restart mongodb-community@5.0

可视化工具

在这里推荐一个可视化工具 RoboMongo/Robo 3T,使用简单,功能强大,官方网站:https://robomongo.org/,三大平台都有支持,下载链接:https://robomongo.org/download

另外还有一个简单易用的可视化工具,Studio 3T,同样具有方便的图形化管理,官方网站:https://studio3t.com,同样支持三大平台,下载链接:https://studio3t.com/download/

安装配置

Splash 是一个 JavaScript 渲染的工具,本节来介绍一下它的安装方式。

准备工作

Splash 建议的安装方式是通过 Docker,安装是通过 Docker 安装,在这之前请确保已经正确安装好了 Docker,可以参考:https://setup.scrape.center/docker。

安装

有了 Docker,只需要一键启动 Splash 即可,命令如下:

1
docker run -p 8050:8050 scrapinghub/splash

安装完成之后会有类似的输出结果:

这样就证明 Splash 已经在 8050 端口上运行了。

这时我们打开:http://localhost:8050 即可看到 Splash 的主页,如图所示:

当然 Splash 也可以直接安装在远程服务器上,我们在服务器上运行以守护态运行 Splash 即可,命令如下:

1
docker run -d -p 8050:8050 scrapinghub/splash

在这里多了一个 -d 参数,它代表将 Docker 容器以守护态运行,这样在中断远程服务器连接后不会终止 Splash 服务的运行。

完毕!

安装配置

MySQL 是一个轻量级的关系型数据库,以表的形式来存储数据,本节我们来了解下它的安装方式。

相关链接

  • 官方网站:https://www.mysql.com/cn
  • 下载地址:https://www.mysql.com/cn/downloads
  • 中文教程:http://www.runoob.com/mysql/mysql-tutorial.html

Windows 下的安装

对于 Windows 来说,最安全稳妥的方式就是直接到官网下载安装包进行安装。可以访问官方网站下载,https://dev.mysql.com/downloads/mysql/,如图所示:

点击最大的 MySQL Installer 即可,然后选择第二个选项 - mysql-installer-community-8.0.26.0.msi 下载即可,如图所示:

此时会要求登录 MySQL 的账号,这里可以登录或者选择直接下载,如图所示:

下载之后会得到一个 msi 后缀的安装文件,直接双击运行安装,直接选择默认选项点击下一步安装即可,如图所示:

这里直接选择默认选项即可,然后点下一步。

下一页需要确认下需要安装的内容,如图所示:

保持默认配置即可,然后点击 Execute 即可。

安装完成之后 MySQL Installer 会引导我们进行一些配置,如图所示:

此页面需要配置一些网络环境和端口,保持默认即可,点击下一步。

下一步是使用怎样的密码加密方式,如图所示:

这里也是使用默认配置即可,可以点击下一步。

下一步就是配置用户名和密码,这里我们可以配置 Root 账户的密码,也可以自定义用户来配置,如图所示:

输入密码之后,点击下一步即可。

接下来就是服务的配置,这里默认配置是把 MySQL 服务配置成 Windows 服务中,而且在每次系统启动的时候都自动启动 MySQL 服务,如图所示:

如果我们想要每次开机的时候都自动启用 MySQL 服务,那我们可以勾选上 Start the MySQL Server at System Startup,否则勾选,配置好了之后点击下一步即可。

最后一步就是应用刚才的服务,使得服务生效,如图所示:

这里我们直接点击 Execute 即可。

安装之后我们会发现刚才还附带安装了一个 MySQL Workbench,就是 MySQL 可视化管理的客户端,如图所示:

这里可以发现已经添加了一个本地的 MySQL 服务的连接,双击即可连接。

连接之后我们还可以选中某个数据库的某个表,选择查看数据的选项 Select Rows,查看表中中的前 100 条数据,这样数据就被查询出来了,如图所示:

安装完成之后我们可以在电脑-管理-服务页面开启和关闭 MySQL 服务,如图所示:

如果启动了 MySQL 服务,那么我们就可以使用它来进行数据存储了。

Linux 下的安装

下面仍然分不同平台进行介绍。

Ubuntu、Debian、Deepin

直接使用 apt-get 命令即可下载安装:

1
2
sudo apt-get update
sudo apt-get install -y mysql-server mysql-client

在安装过程中会提示输入用户名密码,输入之后等待片刻即可完成安装。

启动、关闭、重启 MySQL 服务命令:

1
2
3
sudo service mysql start
sudo service mysql stop
sudo service mysql restart

CentOS、RedHat

完整的安装说明可以参考:https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-centos-7

以 MySQL 5.7 的 Yum 源为例,如果需要更高版本可以另寻,安装命令如下:

1
2
3
wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
yum install -y mysql mysql-server

运行如上命令即可完成安装,初始密码为空。接下来需要启动 MySQL 服务。

启动 MySQL 服务命令:

1
sudo systemctl start mysqld

停止、重启命令:

1
2
sudo systemctl stop mysqld
sudo systemctl restart mysqld

以上我们就完成了 Linux 下 MySQL 的安装,安装完成之后可以修改密码,可以执行如下命令:

1
mysql -uroot -p

输入密码后进入 MySQL 命令行模式。

1
2
3
use mysql;
UPDATE user SET Password = PASSWORD('newpass') WHERE user = 'root';
FLUSH PRIVILEGES;

命令中 newpass 即为修改的新的 MySQL 密码,请自行替换。

由于 Linux 一般会作为服务器使用,为了使得 MySQL 可以被远程访问,我们需要修改 MySQL 的配置文件,配置文件路径一般为 /etc/mysql/my.cnf。

如使用 vi 进行修改的命令如下:

1
vi /etc/mysql/my.cnf

取消此行的注释:

1
bind-address = 127.0.0.1

此行限制了 MySQL 只能本地访问而不能远程访问,取消注释即可解除此限制。

修改完成之后重启 MySQL 服务,这样 MySQL 就可以被远程访问了。

到此为止,Linux 下安装 MySQL 的过程结束。

Mac 下的安装

推荐使用 Homebrew 安装,执行 brew 命令即可。

1
brew install mysql

启动、停止、重启 MySQL 服务的命令:

1
2
3
sudo mysql.server start
sudo mysql.server stop
sudo mysql.server restart

Mac 一般不会作为服务器使用,如果要想取消本地 host 绑定,同样修改 my.cnf 文件,然后重启服务即可。

安装配置

Appium 是移动端的自动化测试工具,类似于前面所说的 Selenium,利用它我们可以驱动 Android、iOS 等设备完成自动化测试,比如模拟点击、滑动、输入等操作,其官方网站为:http://appium.io/,本节来了解一下 Appium 的安装方式。

相关链接

  • GitHub:https://github.com/appium/appium
  • 官方网站:http://appium.io
  • 官方文档:http://appium.io/introduction.html
  • 下载链接:https://github.com/appium/appium-desktop/releases
  • Python Client:https://github.com/appium/python-client

安装 Appium

首先我们需要安装 Appium,Appium 负责驱动移动端来完成一系列操作,对 iOS 设备来说,它使用苹果的 UIAutomation 来实现驱动,对于 Android 来说,它使用 UiAutomator 和 Selendroid 来实现驱动。

同时 Appium 也相当于一个服务器,我们可以向 Appium 发送一些操作指令,Appium 就会根据不同的指令对移动设备进行驱动,完成不同的动作。

安装 Appium 有两种方式,一种是直接下载安装包 Appium Desktop 来安装,另外一种是通过 Node.js 来安装,下面我们各自介绍一下两种安装方式。

Appium Desktop

Appium Desktop 支持全平台的安装,我们直接从 GitHub 的 Releases 里面安装即可,链接为:https://github.com/appium/appium-desktop/releases,目前的最新版本是 1.22,最新版本以网站为准,下载页面如图所示:

Windows 平台可以下载 exe 安装包如 Appium-Server-GUI-windows-1.22.0.exe,Mac 平台可以下载 dmg 安装包如 Appium-Server-GUI-mac-1.22.0.dmg,Linux 平台可以选择下载源码,但是更推荐用下文的 Node.js 安装方式。

安装完成之后运行之后页面如图所示:

如果出现此页面则证明安装成功。

Node.js

首先需要安装 Node.js,具体的安装方式可以参见:http://www.runoob.com/nodejs/nodejs-install-setup.html,安装完成之后就可以使用 npm 命令了。

接下来使用 npm 命令全局安装 Appium 即可,命令如下:

1
npm install -g appium

等待命令执行执行完成即可,这样就成功安装了 Appium。

Android 开发环境配置

如果我们要使用 Android 设备做 App 抓取的话,还需要下载和配置 Android SDK,在这里推荐直接安装 Android Studio,其下载地址为:https://developer.android.com/studio/index.html?hl=zh-cn,下载之后直接安装即可。

完成之后我们还需要下载 Android SDK,直接打开首选项里面的 Android SDK 设置页面,勾选要安装的 SDK 版本,点击确定即可开始下载和安装勾选的 SDK 版本,如图所示:

另外还需要配置一下环境变量,添加 ANDROID_HOME 为 Android SDK 所在路径,然后再添加 SDK 文件夹下的 tools 和 platform-tools 文件夹到 PATH 中。

更详细的配置可以参考 Android Studio 的官方文档:https://developer.android.com/studio/intro/index.html

iOS 开发环境配置

首先需要声明的是,Appium 是一个做自动化测试的工具,用它来测试我们自己开发的 App 是完全没问题的,它携带的是开发者证书(Development Certificate)。但如果我们想拿 iOS 设备来做数据爬取的话又是另外一回事了,一般我们做数据爬取都是使用现有的 APP,在 iOS 上一般都是通过 App Store 下载的,它携带的是分发证书(Distribution Certificate),而携带这种证书的应用都是禁止被测试的,所以只有获取 ipa 安装包再重新签名之后才可以被 Appium 测试,具体的方法不再展开阐述,如感兴趣可以搜索相关资料。

因此在这里推荐直接使用 Android 来进行测试,如果你可以完成上述操作重签名操作,那么可以参考如下内容配置 iOS 开发环境。

Appium 驱动 iOS 设备必须要在 Mac 下进行,Windows 和 Linux 是平台是无法完成的,下面只介绍一下 Mac 平台的相关配置。

Mac 平台需要的配置如下:

  • Mac OS X 10.12 及更高版本
  • XCode 8 及更高版本

配置满足要求之后执行如下命令即可配置开发依赖的一些库和工具:

1
xcode-select --install

这样 iOS 部分开发环境就配置完成了,我们就可以用 iOS 模拟器来进行测试和数据抓取了。

如果想要用真机进行测试和数据抓取,还需要额外配置一下其他的环境,可以参考:https://github.com/appium/appium/blob/master/docs/en/appium-setup/real-devices-ios.md

结语

以上是 Appium 开发环境的搭建,在后文我们会用它来抓取微信朋友圈的内容。

安装配置

Docker 是一种容器技术,它可以将应用和环境等进行打包,形成一个独立的,类似于 iOS 的 APP 形式的「应用」,这个应用可以直接被分发到任意一个支持 Docker 的环境中,通过简单的命令即可启动运行。Docker 是一种最流行的容器化实现方案。和虚拟化技术类似,它极大的方便了应用服务的部署;又与虚拟化技术不同,它以一种更轻量的方式实现了应用服务的打包。使用 Docker 可以让每个应用彼此相互隔离,在同一台机器上同时运行多个应用,不过他们彼此之间共享同一个操作系统。Docker 的优势在于,它可以在更细的粒度上进行资源的管理,也比虚拟化技术更加节约资源。

本段参考:DaoCloud 官方文档

对于爬虫来说,如果我们需要大规模部署爬虫系统的话,用 Docker 会大大提高效率,工欲善其事,必先利其器。

本节来介绍一下三大平台下 Docker 的安装方式。

相关链接

  • 官方网站:https://www.docker.com
  • GitHub:https://github.com/docker
  • Docker Hub:https://hub.docker.com
  • 官方文档:https://docs.docker.com
  • DaoCloud:http://www.daocloud.io
  • 中文社区:http://www.docker.org.cn
  • 中文教程:http://www.runoob.com/docker/docker-tutorial.html
  • 推荐书籍:https://yeasy.gitbooks.io/docker_practice

Windows 下的安装

如果你的系统是 Windows10 64 位,那么推荐使用 Docker for Windows,直接从 Docker 官方网站下载最新的 Docker for Windows 安装包即可:https://docs.docker.com/docker-for-windows/install/

如果不是 Windows10 64 位系统,则可以下载 Docker Toolbox:https://docs.docker.com/toolbox/toolbox_install_windows/

安装包下载之后直接双击安装即可,安装详细过程可以参考文档说明,安装完成之后,进入命令行。

运行 Docker 命令测试:

1
docker

运行结果如图所示:

如果出现类似上述输出就证明 Docker 安装成功了。

Linux 下的安装

详细的分步骤的安装说明可以参见官方文档:https://docs.docker.com/engine/installation/linux/ubuntu/

在官方文档中详细说明了不同 Linux 系统的安装方法,安装流程根据文档一步步执行即可安装成功。

但是为了使得安装更加方便,Docker 官方还提供了一键安装脚本,使用它会使得安装更加便捷,不用再去一步步执行命令安装了,在此介绍一下一键脚本安装方式。

首先是 Docker 官方提供的安装脚本,相比其他脚本,官方提供的一定更靠谱,安装命令如下:

1
curl -sSL https://get.docker.com/ | sh

只要执行如上一条命令,等待一会儿 Docker 便会安装完成,非常方便。

但是官方脚本安装有一个缺点,那就是慢,也可能下载超时,所以为了加快下载速度,我们可以使用国内的镜像来安装,所以在这里还有阿里云和 DaoCloud 的安装脚本。

阿里云安装脚本:

1
curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh -

DaoCloud 安装脚本:

1
curl -sSL https://get.daocloud.io/docker | sh

两个脚本可以任选其一,速度都非常不错。

等待脚本执行完毕之后,就可以使用 Docker 相关命令了,如运行测试 Hello World 镜像:

1
docker run hello-world

运行结果:

1
2
3
4
5
6
7
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
78445dd45222: Pull complete
Digest: sha256:c5515758d4c5e1e838e9cd307f6c6a0d620b5e07e6f927b07d05f6d12a1ac8d7
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.

如果出现上文类似提示内容则证明 Docker 可以正常使用了。

Mac 下的安装

Mac 平台同样有两种选择,Docker for Mac 和 Docker Toolbox。

Docker for Mac 要求系统为 OS X EI Captain 10.11 或更新,至少 4GB 内存,如果你的系统满足此要求,则强烈建议安装 Docker for Mac。

可以使用 HomeBrew 安装,安装命令如下:

1
brew cask install docker

另外也可以手动下载安装包安装,安装包下载地址为:https://download.docker.com/mac/stable/Docker.dmg

下载完成之后直接双击安装包,然后将程序拖动到应用程序中即可。

点击程序图标运行 Docker,会发现在菜单栏中出现了 Docker 的图标,如图中的第三个小鲸鱼图标:

点击图标展开菜单之后,再点击 Start 按钮即可启动 Docker,启动成功便会提示 Docker is running,如图所示:

随后我们就可以在命令行下使用 Docker 命令了。

可以使用如下命令测试运行:

1
sudo docker run hello-world

运行结果如图所示:

如果出现类似输出则证明 Docker 已经成功安装。

如果系统不满足要求,可以下载 Docker Toolbox,其安装说明为:https://docs.docker.com/toolbox/overview/

关于 Docker for Mac 和 Docker Toolbox 的区别,可以参见:https://docs.docker.com/docker-for-mac/docker-toolbox/

镜像加速

安装好 Docker 之后,在运行测试命令时,我们会发现它首先会下载一个 Hello World 的镜像,然后将其运行,但是下载速度有时候会非常慢,这是因为它默认还是从国外的 Docker Hub 下载的,所以为了提高镜像的下载速度,我们还可以使用国内镜像来加速下载,所以这就有了 Docker 加速器一说。

推荐的 Docker 加速器有 DaoCloud 和阿里云。

DaoCloud:https://www.daocloud.io/mirror

阿里云:https://cr.console.aliyun.com/#/accelerator

不同平台的镜像加速方法配置可以参考 DaoCloud 的官方文档:http://guide.daocloud.io/dcs/daocloud-9153151.html

配置完成之后,可以发现镜像的下载速度会快非常多。

以上便是 Docker 的安装方式说明。

安装配置

mitmproxy 是一个支持 HTTP 和 HTTPS 的抓包程序,类似 Fiddler、Charles 的功能,只不过它是一个控制台的形式操作。

同时 mitmproxy 还有两个关联组件,一个是 mitmdump,它是 mitmproxy 的命令行接口,利用它我们可以对接 Python 脚本,用 Python 实现监听后的处理。另一个是 mitmweb,它是一个 Web 程序,通过它我们可以清楚地观察到 mitmproxy 捕获的请求。

本节我们来了解一下 mitmproxy、mitmdump、mitmweb 的安装方式。

相关链接

  • GitHub:https://github.com/mitmproxy/mitmproxy
  • 官方网站:https://mitmproxy.org
  • PyPi:https://pypi.python.org/pypi/mitmproxy
  • 官方文档:http://docs.mitmproxy.org
  • mitmdump 脚本:http://docs.mitmproxy.org/en/stable/scripting/overview.html
  • 下载地址:https://github.com/mitmproxy/mitmproxy/releases
  • DockerHub:https://hub.docker.com/r/mitmproxy/mitmproxy

pip 安装

最简单的安装方式还是使用 pip,直接执行如下命令即可安装:

1
pip3 install mitmproxy

这是最简单和通用的安装方式,执行完毕之后即可完成 mitmproxy 的安装,另外还安装了 mitmdump、mitmweb 两个组件,如果不想用此种方式安装也可以选择下文列出的专门针对各个平台的安装方式或者 Docker 安装方式。

Windows 下的安装

可以到 https://mitmproxy.org/ 获取安装包,如图所示:

下载之后直接双击安装包即可安装。

注意在 Windows 上不支持 mitmproxy 的控制台接口,但是可以使用 mitmdump 和 mitmweb。

Linux 下的安装

Linux 可以下载编译好的二进制包,此发行包一般是最新版本,它包含了最新版本的 mitmproxy 和内置的 Python3 环境还有最新的 OpenSSL 环境。

如果你的环境里没有 Python3 和 OpenSSL 环境,建议使用此种方式安装,如图所示,下载安装包即可:

下载之后需要解压然后将其配置到环境变量。

1
2
tar -zxvf mitmproxy-*-linux.tar.gz
sudo mv mitmproxy mitmdump mitmweb /usr/bin

这样就可以将三个可执行文件移动到了 /usr/bin 目录,而一般 /usr/bin 目录都已经配置在了环境变量下,所以接下来我们就可以直接调用这三个工具了。

Mac 下的安装

Mac 的安装非常简单,使用 HomeBrew 即可,命令如下:

1
brew install mitmproxy

执行命令后即可完成 mitmproxy 的安装。

Docker 安装

mitmproxy 也支持 Docker,其 Docker Hub 的地址为:https://hub.docker.com/r/mitmproxy/mitmproxy/

Docker 下 mitmproxy 的安装命令为:

1
docker run --rm -it -p 8080:8080 mitmproxy/mitmproxy mitmdump

这样就在 8080 端口上启动了 mitmproxy 和 mitmdump。

如果想要获取 CA 证书,可以选择挂载磁盘选项,命令如下:

1
docker run --rm -it -v ~/.mitmproxy:/home/mitmproxy/.mitmproxy -p 8080:8080 mitmproxy/mitmproxy mitmdump

这样可以在 ~/.mitmproxy 目录找到 CA 证书。

另外还可以在 8081 端口上启动 mitmweb,命令如下:

1
docker run --rm -it -p 8080:8080 -p 127.0.0.1:8081:8081 mitmproxy/mitmproxy mitmweb

更多启动方式可以参考 Docker Hub 的安装说明。

证书配置

对于 mitmproxy 来说,如果想要截获 HTTPS 请求,我们就需要设置证书,mitmproxy 在安装后会提供一套 CA 证书,只要客户端信任了 mitmproxy 提供的证书,我们就可以通过 mitmproxy 获取 HTTPS 请求的具体内容,否则 mitmproxy 是无法解析 HTTPS 请求的。

首先运行一下命令产生 CA 证书,启动 mitmdump 即可:

1
mitmdump

这样即可启动 mitmdump,接下来我们就可以在用户目录下的 .mitmproxy 目录里面找到 CA 证书,如图所示:

证书一共五个,下面是对这五个证书的说明:

名称 描述
mitmproxy-ca.pem PEM 格式的证书私钥
mitmproxy-ca-cert.pem PEM 格式证书,适用于大多数非 Windows 平台
mitmproxy-ca-cert.p12 PKCS12 格式的证书,适用于 Windows 平台
mitmproxy-ca-cert.cer 与 mitmproxy-ca-cert.pem 相同,只是改变了后缀,适用于部分 Android 平台
mitmproxy-dhparam.pem PEM 格式的秘钥文件,用于增强 SSL 安全性

下面我们介绍一下 Windows、Mac、iOS、Android 平台下的证书配置过程。

Windows

双击 mitmproxy-ca.p12,就会出现导入证书的引导页,如图所示:

直接点击下一步即可,接下来会出现密码设置提示,如图所示:

不需要设置密码,直接点击下一步即可。

接下来需要选择证书的存储区域,如图所示:

点击第二个选项“将所有证书放入下列存储”,然后点击浏览,再选择证书存储位置为“受信任的根证书颁发机构”,确定,点击下一步。

最后如果有安全警告均点击“是”即可,如图所示:

这样就配置完成 Windows 下信任 CA 证书了。

Mac

Mac 下双击 mitmproxy-ca-cert.pem 即可弹出钥匙串管理页面,然后找到 mitmproxy 证书,点击打开其设置选项,选择始终信任即可,如图所示:

这样就配置完成 Mac 下信任 CA 证书了。

iOS

将 mitmproxy-ca-cert.pem 文件发送到 iPhone 上,推荐使用邮件的方式发送,iPhone 上可以直接点击附件并识别安装,如图所示:

点击之后会跳到安装描述文件的页面,点击右上角的安装按钮即可安装,此处会有警告提示,如图所示:

继续点击右上角的安装即可,安装成功之后会有已安装的提示,如图所示:

如果你的 iOS 版本是 10.3 以下的话,此处信任 CA 证书的流程就已经完成了。

如果你的 iOS 版本是 10.3 及以上,还需要在设置->通用->关于本机->证书信任设置将证书添加完全信任,如图所示:

在这里将 mitmproxy 的完全信任开关打开即可。

这样 iOS 上配置信任 CA 证书的流程就结束了。

Android

Android 手机同样需要将证书 mitmproxy-ca-cert.pem 文件发送到手机上,例如直接拷贝文件。

接下来点击证书便会出现一个提示窗口,如图所示:

这时输入证书的名称,然后点击确定即可完成安装。

结语

本节我们了解了 mitmproxy、mitmdump、mitmweb 的安装方式。

安装配置

安装好了 Scrapyd 之后,我们可以直接请求它提供的 API 即可获取当前主机的 Scrapy 任务运行状况。

如某台主机的 IP 为 192.168.1.1,则可以直接运行如下命令获取当前主机的所有 Scrapy 项目:

1
curl http://localhost:6800/listprojects.json

运行结果:

1
{"status": "ok", "projects": ["myproject", "otherproject"]}

返回结果是 JSON 字符串,通过解析这个字符串我们便可以得到当前主机所有项目。

但是用这种方式来获取任务状态还是有点繁琐,所以 ScrapydAPI 就为它做了一层封装,下面我们来看下它的安装方式。

相关链接

  • GitHub:https://pypi.python.org/pypi/python-scrapyd-api/
  • PyPi:https://pypi.python.org/pypi/python-scrapyd-api
  • 官方文档:http://python-scrapyd-api.readthedocs.io/en/latest/usage.html

pip 安装

推荐使用 Pip 安装,命令如下:

1
pip install python-scrapyd-api

验证安装

安装完成之后便可以使用 Python 来获取主机状态了,所以如上的操作便可以用 Python 代码实现:

1
2
3
from scrapyd_api import ScrapydAPI
scrapyd = ScrapydAPI('http://localhost:6800')
print(scrapyd.list_projects())

运行结果:

1
["myproject", "otherproject"]

这样我们便可以用 Python 直接来获取各个主机上 Scrapy 任务的运行状态了。

安装配置

Gerapy 是一个 Scrapy 分布式管理模块,本节来介绍一下 Gerapy 的安装方式。

相关链接

  • GitHub:https://github.com/Gerapy
  • 文档:https://docs.gerapy.com

pip 安装

推荐使用 pip 安装,命令如下:

1
pip3 install gerapy

测试安装

安装完成之后,可以在 Python 命令行下测试。

1
2
$ python3
>>> import gerapy

如果没有错误报出,则证明库已经安装好了。

安装配置

在将 Scrapy 代码部署到远程 Scrapyd 的时候,其第一步就是要将代码打包为 Egg 文件,其次需要将 Egg 文件上传到远程主机,这个过程如果我们用程序来实现是完全可以的,但是我们并不需要做这些工作,因为 Scrapyd-Client 已经为我们实现了这些功能。

下面我们就来来一下 Scrapyd-Client 的安装过程。

相关链接

  • GitHub:https://github.com/scrapy/scrapyd-client
  • PyPi:https://pypi.python.org/pypi/scrapyd-client
  • 使用说明:https://github.com/scrapy/scrapyd-client#scrapyd-deploy

pip 安装

推荐使用 pip 安装,命令如下:

1
pip3 install scrapyd-client

验证安装

安装成功后会有一个可用命令,叫做 scrapyd-deploy,即部署命令。

我们可以输入如下测试命令测试 Scrapyd-Client 是否安装成功:

1
scrapyd-deploy -h

如果出现如图类似输出则证明 Scrapyd-Client 已经成功安装:

安装配置

Scrapyd 是一个用于部署和运行 Scrapy 项目的工具。有了它,你可以将写好的 Scrapy 项目上传到云主机并通过 API 来控制它的运行。

既然是 Scrapy 项目部署,所以基本上都使用 Linux 主机,所以本节的安装是针对于 Linux 主机的。

相关链接

  • GitHub:https://github.com/scrapy/scrapyd
  • PyPi:https://pypi.python.org/pypi/scrapyd
  • 官方文档:https://scrapyd.readthedocs.io

pip 安装

推荐使用 pip 安装,命令如下:

1
pip3 install scrapyd

配置

安装完毕之后需要新建一个配置文件 /etc/scrapyd/scrapyd.conf,Scrapyd 在运行的时候会读取此配置文件。

在 Scrapyd 1.2 版本之后不会自动创建该文件,需要我们自行添加。

执行命令新建文件:

1
2
sudo mkdir /etc/scrapyd
sudo vi /etc/scrapyd/scrapyd.conf

写入如下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
[scrapyd]
eggs_dir = eggs
logs_dir = logs
items_dir =
jobs_to_keep = 5
dbs_dir = dbs
max_proc = 0
max_proc_per_cpu = 10
finished_to_keep = 100
poll_interval = 5.0
bind_address = 0.0.0.0
http_port = 6800
debug = off
runner = scrapyd.runner
application = scrapyd.app.application
launcher = scrapyd.launcher.Launcher
webroot = scrapyd.website.Root

[services]
schedule.json = scrapyd.webservice.Schedule
cancel.json = scrapyd.webservice.Cancel
addversion.json = scrapyd.webservice.AddVersion
listprojects.json = scrapyd.webservice.ListProjects
listversions.json = scrapyd.webservice.ListVersions
listspiders.json = scrapyd.webservice.ListSpiders
delproject.json = scrapyd.webservice.DeleteProject
delversion.json = scrapyd.webservice.DeleteVersion
listjobs.json = scrapyd.webservice.ListJobs
daemonstatus.json = scrapyd.webservice.DaemonStatus

配置文件的内容可以参见官方文档:https://scrapyd.readthedocs.io/en/stable/config.html#example-configuration-file,在这里的配置文件有所修改,其中之一是 max_proc_per_cpu 官方默认为 4,即一台主机每个 CPU 最多运行 4 个 Scrapy Job,在此提高为 10,另外一个是 bind_address,默认为本地 127.0.0.1,在此修改为 0.0.0.0,以使外网可以访问。

后台运行

由于 Scrapyd 是一个纯 Python 项目,在这里可以直接调用 scrapyd 来运行,为了使程序一直在后台运行,Linux 和 Mac 可以使用如下命令:

1
(scrapyd > /dev/null &)

这样 Scrapyd 就会在后台持续运行了,控制台输出直接忽略,当然如果想记录输出日志可以修改输出目标,如:

1
(scrapyd > ~/scrapyd.log &)

则会输出 Scrapyd 运行输出到 ~/scrapyd.log 文件中。

运行之后便可以在浏览器的 6800 访问 WebUI 了,可以简略看到当前 Scrapyd 的运行 Job、Log 等内容,如图所示:

当然运行 Scrapyd 更佳的方式是使用 Supervisor 守护进程运行,如果感兴趣可以参考:http://supervisord.org/

访问认证

限制配置完成之后 Scrapyd 和它的接口都是可以公开访问的,如果要想配置访问认证的话可以借助于 Nginx 做反向代理,在这里需要先安装 Nginx 服务器。

在此以 Ubuntu 为例进行说明,安装命令如下:

1
sudo apt-get install nginx

然后修改 Nginx 的配置文件 nginx.conf,增加如下配置:

1
2
3
4
5
6
7
8
9
10
http {
server {
listen 6801;
location / {
proxy_pass http://127.0.0.1:6800/;
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/conf.d/.htpasswd;
}
}
}

在这里使用的用户名密码配置放置在 /etc/nginx/conf.d 目录,我们需要使用 htpasswd 命令创建,例如创建一个用户名为 admin 的文件,命令如下:

1
htpasswd -c .htpasswd admin

接下就会提示我们输入密码,输入两次之后,就会生成密码文件,查看一下内容:

1
2
cat .htpasswd
admin:5ZBxQr0rCqwbc

配置完成之后我们重启一下 Nginx 服务,运行如下命令:

1
sudo nginx -s reload

这样就成功配置了 Scrapyd 的访问认证了。

安装配置

PySpider 是国人 binux 编写的强大的网络爬虫框架,它带有强大的 WebUI、脚本编辑器、任务监控器、项目管理器以及结果处理器,同时它支持多种数据库后端、多种消息队列,另外它还支持 JavaScript 渲染页面的爬取,使用起来非常方便,本节介绍一下它的安装过程。

相关链接

  • 官方文档:http://docs.pyspider.org/
  • PyPi:https://pypi.python.org/pypi/pyspider
  • GitHub:https://github.com/binux/pyspider
  • 官方教程:http://docs.pyspider.org/en/latest/tutorial
  • 在线实例:http://demo.pyspider.org

准备工作

PySpider 是支持 JavaScript 渲染的,而这个过程是依赖于 PhantomJS 的,所以还需要安装 PhantomJS,所以在安装之前请安装好 PhantomJS,参考 https://setup.scrape.center/phantomjs。

pip 安装

推荐使用 pip 安装,命令如下:

1
pip3 install pyspider

命令执行完毕即可完成安装。

常见错误

Windows 下可能会出现这样的错误提示:Command “python setup.py egg_info” failed with error code 1 in /tmp/pip-build-vXo1W3/pycurl

这个是 PyCurl 安装错误,一般会出现在 Windows 下,需要安装 PyCurl 库,下载链接为:http://www.lfd.uci.edu/~gohlke/pythonlibs/#pycurl,找到对应 Python 版本然后下载相应的 Wheel 文件。

如 Windows 64 位,Python3.6 则下载 pycurl‑7.43.0‑cp36‑cp36m‑win_amd64.whl,随后用 Pip 安装即可,命令如下:

1
pip3 install pycurl‑7.43.0cp36cp36mwin_amd64.whl

Linux 下如果遇到 PyCurl 的错误可以参考本文:https://imlonghao.com/19.html

验证安装

安装完成之后,可以直接在命令行下启动 PySpider:

1
pyspider all

控制台会有类似如下输出,如图所示:

这时 PySpider 的 Web 服务就会在本地 5000 端口运行,直接在浏览器打开:http://localhost:5000/ 即可进入 PySpider 的 WebUI 管理页面,如图所示:

如果出现类似页面那证明 PySpider 已经安装成功了。

安装配置

Scrapy 是一个十分强大的爬虫框架,依赖的库比较多,至少需要依赖库有 Twisted,lxml,pyOpenSSL。而在不同平台环境又各不相同,所以在安装之前最好确保把一些基本库安装好,尤其是 Windows。本节介绍一下 Scrapy 在不同平台的安装方法。

相关链接

  • 官方网站:https://scrapy.org
  • 官方文档:https://docs.scrapy.org
  • PyPi:https://pypi.python.org/pypi/Scrapy
  • GitHub:https://github.com/scrapy/scrapy
  • 中文文档:http://scrapy-chs.readthedocs.io

Anaconda 安装

这种方法是一种比较简单的安装 Scrapy 的方法(尤其是对 Windows 来说),如果你的 Python 是使用 Anaconda 安装的,或者还没有安装 Python 的话,可以使用该方法安装,简单省力,当然如果你的 Python 不是通过 Anaconda 安装的,可以继续查看下文中各平台直接安装方法。

Anaconda 的安装方式可以查看 https://setup.scrape.center/python,在此不再赘述。

如果已经安装好了 Anaconda,那么可以通过 conda 命令安装 Scrapy,安装命令如下:

1
conda install Scrapy

运行之后便可以完成 Scrapy 的安装。

Windows 下的安装

如果你的 Python 不是使用 Anaconda 安装的,可以参考如下方式来一步步完成 Scrapy 的安装。

首先尝试直接使用 pip3 安装,命令如下:

1
pip3 install scrapy

如果安装过程一切顺利,那就可以忽略后续步骤,否则,请参阅后续步骤一点点安装。

安装 lxml

lxml 的安装过程请参见 https://setup.scrape.center/lxml,在此不再赘述,此库非常重要,请一定要安装成功。

安装 pyOpenSSL

官方网站下载 Wheel 文件,https://pypi.python.org/pypi/pyOpenSSL#downloads,如当前最新版本名称是 pyOpenSSL-21.0.0-py2.py3-none-any.whl ,直接下载,下载后利用 pip 安装即可:

1
pip3 install pyOpenSSL-17.2.0-py2.py3-none-any.whl

安装 Twisted

http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted 下载 Wheel 文件,利用 pip 安装即可。
如 Python 3.6 版本,Windows 64 位系统,当前最新版本为 Twisted‑20.3.0‑cp36‑cp36m‑win_amd64.whl,直接下载即可,如图所示,最新版本以网站为准。

然后 pip 安装即可:

1
pip3 install Twisted‑17.5.0cp36cp36mwin_amd64.whl

安装 PyWin32

从官方网站下载对应版本的安装包即可,链接为:https://sourceforge.net/projects/pywin32/files/pywin32/Build%20221/,如图所示:

如 Python 3.6 版本可以选择下载 pywin32-221.win-amd64-py3.6.exe,下载完毕之后双击安装即可。

注意这里使用的是 Build 221 版本,随着时间推移,版本肯定会继续更新,最新的版本可以查看:https://sourceforge.net/projects/pywin32/files/pywin32/,查找最新的版本安装即可。

安装 Scrapy

安装好了以上的依赖库,最后安装 Scrapy 就非常简单了,依然使用 pip,命令如下:

1
pip3 install scrapy

等待命令结束没有报错,就证明 Scrapy 已经安装好了。

Linux 下的安装

在 Linux 上的安装方式依然分为两类平台介绍。

CentOS、RedHat

首先确保一些依赖库已经安装,运行如下命令:

1
2
sudo yum groupinstall -y development tools
sudo yum install -y epel-release libxslt-devel libxml2-devel openssl-devel

最后利用 pip 安装 Scrapy 即可,运行如下命令:

1
pip3 install Scrapy

Ubuntu、Debian、Deepin

首先确保一些依赖库已经安装,运行如下命令:

1
sudo apt-get install build-essential python3-dev libssl-dev libffi-dev libxml2 libxml2-dev libxslt1-dev zlib1g-dev

然后利用 Pip 安装 Scrapy 即可,运行如下命令:

1
pip3 install Scrapy

运行完毕之后即可完成 Scrapy 的安装。

Mac 下的安装

在 Mac 下首先也是进行依赖库的安装。

在 Mac 上构建 Scrapy 的依赖库需要 C 编译器以及开发头文件,它一般由 Xcode 提供,运行如下命令安装即可:

1
xcode-select --install

随后利用 Pip 安装 Scrapy 即可,运行如下命令:

1
pip3 install Scrapy

运行完毕之后即可完成 Scrapy 的安装。

验证安装

安装之后,在命令行下输入 scrapy,如果出现类似下方的结果,就证明 Scrapy 安装成功,如图所示:

常见错误

pkg_resources.VersionConflict: (six 1.5.2 (/usr/lib/python3/dist-packages), Requirement.parse(‘six>=1.6.0’))

six 包版本过低,six 包是一个提供兼容 Python2 和 Python3 的库,升级 six 包即可:

1
sudo pip3 install -U six

c/_cffi_backend.c:15:17: fatal error: ffi.h: No such file or directory

这是在 Linux 下常出现的错误,缺少 Libffi 这个库。什么是 libffi?“FFI” 的全名是 Foreign Function Interface,通常指的是允许以一种语言编写的代码调用另一种语言的代码。而 Libffi 库只提供了最底层的、与架构相关的、完整的”FFI”。

安装相应的库即可。

Ubuntu、Debian:

1
sudo apt-get install build-essential libssl-dev libffi-dev python3-dev

CentOS、RedHat:

1
sudo yum install gcc libffi-devel python-devel openssl-devel

Command “python setup.py egg_info” failed with error code 1 in /tmp/pip-build/cryptography/

这是缺少加密的相关组件,利用 Pip 安装即可。

1
pip3 install cryptography

ImportError: No module named ‘packaging’

缺少 packaging 这个包,它提供了 Python 包的核心功能,利用 Pip 安装即可。

ImportError: No module named ‘_cffi_backend’

缺少 cffi 包,使用 Pip 安装即可:

1
pip3 install cffi

ImportError: No module named ‘pyparsing’

缺少 pyparsing 包,使用 Pip 安装即可:

1
pip3 install pyparsing appdirs

安装配置

Scrapy-Redis 是 Scrapy 分布式的扩展模块,有了它我们可以方便地实现 Scrapy 分布式爬虫的搭建,本节来介绍一下 Scrapy-Redis 的安装方式。

相关链接

  • GitHub:https://github.com/rmax/scrapy-redis
  • PyPi:https://pypi.python.org/pypi/scrapy-redis
  • 官方文档:http://scrapy-redis.readthedocs.io

pip 安装

推荐使用 pip 安装,命令如下:

1
pip3 install scrapy-redis

Wheel 安装

也可以到 PyPi 下载 Wheel 文件安装:https://pypi.org/project/scrapy-redis/#downloads,如当前最新版本为 0.7.1,则可以下载 scrapy_redis-0.7.1-py2.py3-none-any.whl ,然后 pip 安装即可。

1
pip3 install scrapy_redis-0.7.1-py2.py3-none-any.whl

测试安装

安装完成之后,可以在 Python 命令行下测试。

1
2
$ python3
>>> import scrapy_redis

如果没有错误报出,则证明库已经安装好了。

安装配置

对于 Redis 来说,我们要使用 redis-py 库来与其交互,本节我们来介绍一下 redis-py 的安装方法。

相关链接

  • GitHub:https://github.com/andymccurdy/redis-py
  • 官方文档:https://redis-py.readthedocs.io/

安装方法

pip 安装

推荐使用 pip3 安装,命令如下:

1
pip3 install redis

运行完毕之后即可完成 redis-py 的安装。

验证安装

为了验证库是否已经安装成功,可以在命令行下测试一下:

1
2
3
4
5
$ python3
>>> import redis
>>> redis.VERSION
(2, 10, 6)
>>>

在命令行首先输入 python3,进入命令行模式,输入如上内容,如果成功输出了其版本内容,那么证明 redis-py 成功安装。

安装配置

Scrapy-Splash 是一个 Scrapy 中支持 JavaScript 渲染的工具,本节来介绍一下它的安装方式。

Scrapy-Splash 的安装分为两部分,一个是是 Splash 服务的安装,安装方式是通过 Docker,安装之后会启动一个 Splash 服务,我们可以通过它的接口来实现 JavaScript 页面的加载。另外一个是 ScrapySplash 的 Python 库的安装,安装之后即可在 Scrapy 中使用 Splash 服务。

相关链接

  • GitHub:https://github.com/scrapy-plugins/scrapy-splash
  • PyPi:https://pypi.python.org/pypi/scrapy-splash
  • 使用说明:https://github.com/scrapy-plugins/scrapy-splash#configuration
  • Splash 官方文档:http://splash.readthedocs.io

安装 Splash

Scrapy-Splash 会使用 Splash 的 HTTP API 进行页面渲染,所以我们需要安装 Splash 来提供渲染服务,安装教程参考:https://setup.scrape.center/splash

Scrapy-Splash 的安装

成功安装了 Splash 之后,我们接下来再来安装一下其 Python 库,安装命令如下:

1
pip3 install scrapy-splash

命令运行完毕后就会成功安装好此库。

完毕!

安装配置

成功安装好了 Selenium 库,但是它是一个自动化测试工具,需要浏览器来配合它使用,那么本节我们就介绍一下 Chrome 浏览器及 ChromeDriver 驱动的配置。

首先需要下载一个 Chrome 浏览器,方法多样,在此不再赘述。

随后我们需要安装一个 ChromeDriver 才能驱动 Chrome 浏览器完成相应的操作,下面我们来介绍下怎样安装 ChromeDriver。

相关链接

  • 官方网站:https://sites.google.com/a/chromium.org/chromedriver
  • 下载地址:https://chromedriver.storage.googleapis.com/index.html

准备工作

在这之前请确保已经正确安装好了 Chrome 浏览器并可以正常运行,安装过程不再赘述。

查看版本

点击 Chrome 的菜单,帮助->关于 Chrome,即可查看 Chrome 的版本号,在这里我的版本是 94.0.4606,如图所示:

请记住 Chrome 版本号,在后面选择 ChromeDriver 版本时需要用到。

下载 ChromeDriver

打开 ChromeDriver 的官方网站,链接为:https://sites.google.com/chromium.org/driver/downloads。可以看到到目前为止最新支持的 Chrome 浏览器版本为 95,最新版本以官网为准,如图所示:

每个版本都有相应的支持 Chrome 版本介绍,请找好自己的 Chrome 浏览器版本对应的 ChromeDriver 版本再下载,否则可能导致无法正常工作。

由于我这边的 ChromeDriver 版本是 94.0.4606,找到对应的下载列表,如图所示:

Windows 系统就下载 win32.zip,Mac 系统 Intel 芯片下载 mac64.zip,Mac 系统 M1 芯片下载 mac64_m1.zip,Linux 系统下载 linux64.zip,下载解压之后会得到一个 ChromeDriver 的可执行文件。

另外如果上面的链接打不开的话,也可以从对应的 ChromeDriver 镜像网站下载:https://chromedriver.storage.googleapis.com/index.html,同样地,版本对应好即可。

环境变量配置

下载完成后将 ChromeDriver 的可执行文件配置到环境变量下。

在 Windows 下,建议直接将 chromedriver.exe 文件拖到 Python 的 Scripts 目录下,如图所示:

也可以单独将其所在路径配置到环境变量,环境变量的配置方法请参见 Python3 的安装一节。

在 Linux、Mac 下,需要将可执行文件配置到环境变量或将文件移动到属于环境变量的目录里。

例如移动文件到 /usr/bin 目录,首先命令行进入其所在路径,然后将其移动到 /usr/bin:

1
sudo mv chromedriver /usr/bin

当然也可以将 ChromeDriver 配置到 $PATH,首先可以将可执行文件放到某一目录,目录可以任意选择,例如将当前可执行文件放在 /usr/local/chromedriver 目录下,接下来可以修改 ~/.profile 文件,命令如下:

1
export PATH="$PATH:/usr/local/chromedriver"

保存然后执行:

1
source ~/.profile

即可完成环境变量的添加。

验证安装

配置完成之后,就可以在命令行下直接执行 chromedriver 命令了。

命令行下输入:

1
chromedriver

输入控制台有类似输出,如图所示:

如果有类似输出则证明 ChromeDriver 的环境变量配置好了。

另外如果要配合代码进行测试的话,可以安装 Selenium,安装方式参考:https://setup.scrape.center/selenium,安装好了之后,随后再在程序中测试,执行如下 Python 代码:

1
2
from selenium import webdriver
browser = webdriver.Chrome()

运行之后会弹出一个空白的 Chrome 浏览器,证明所有的配置都没有问题,如果没有弹出,请检查之前的每一步的配置。

如果弹出之后闪退,则可能是 ChromeDriver 版本和 Chrome 版本不简容,请更换 ChromeDriver 版本。

如果没有问题,接下来我们就可以利用 Chrome 来做网页抓取了。

安装配置

pyquery 是一个强大的网页解析工具,它提供了和 jQuery 类似的语法来解析 HTML 文档,支持 CSS 选择器,使用非常方便,本节我们了解下它的安装方式。

相关链接

  • GitHub:https://github.com/gawel/pyquery
  • PyPi:https://pypi.python.org/pypi/pyquery
  • 官方文档:http://pyquery.readthedocs.io

安装方法

pip 安装

推荐使用 pip3 安装,命令如下:

1
pip3 install pyquery

命令执行完毕之后即可完成安装。

wheel 安装

当然也可以到 PyPi 下载对应的 wheel 文件安装,https://pypi.python.org/pypi/pyquery/#downloads,如当前最新版本为 1.2.17,则下载的文件名称为 pyquery-1.2.17-py2.py3-none-any.whl,下载到本地再 pip3 安装即可,命令如下:

1
pip3 install pyquery-1.2.17-py2.py3-none-any.whl

验证安装

安装完成之后,可以在 Python 命令行下测试。

1
2
$ python3
>>> import pyquery

如果没有错误报出,则证明库已经安装好了。

安装配置

在 Python3 中如果想要将数据存储到 MySQL 中就需要借助于 PyMySQL 来操作,本节我们介绍一下 PyMySQL 的安装方式。

相关链接

  • GitHub:https://github.com/PyMySQL/PyMySQL
  • 官方文档:http://pymysql.readthedocs.io/
  • PyPi:https://pypi.python.org/pypi/PyMySQL

安装方法

pip 安装

推荐使用 pip3 安装,命令如下:

1
pip3 install pymysql

执行完命令即可完成安装。

验证安装

为了验证库是否已经安装成功,可以在命令行下测试一下:

1
2
3
4
5
$ python3
>>> import pymysql
>>> pymysql.VERSION
(1, 0, 2, None)
>>>

在命令行首先输入 python3,进入命令行模式,输入如上内容,如果成功输出了其版本内容,那么证明 PyMySQL 成功安装。

安装配置

在 Python 中如果想要和 MongoDB 进行交互就需要借助于 PyMongo 库,本节我们来了解一下 PyMongo 的安装方法。

相关链接

  • GitHub:https://github.com/mongodb/mongo-python-driver
  • 官方文档:https://api.mongodb.com/python/current/
  • PyPi:https://pypi.python.org/pypi/pymongo

安装方法

pip 安装

推荐使用 pip3 安装,命令如下:

1
pip3 install "pymongo<4.0"

注意:因为 PyMongo 在 4.0 版本移除了 insert, update, remove 等方法,所以如果安装 4.0 及以上版本,《Python3网络爬虫开发实战(第二版)》书中部分代码会报错,3.x 就不会有问题。详情请见官方说明:https://pymongo.readthedocs.io/en/stable/migrate-to-pymongo4.html#collection-insert-is-removed

当然,如果安装 4.0 及以上版本的话也可以,需要手动把 insert 方法改成 insert_one 或 insert_many 方法即可。

运行完毕之后即可完成 PyMongo 的安装。

验证安装

为了验证库是否已经安装成功,可以在命令行下测试一下:

1
2
3
4
5
$ python3
>>> import pymongo
>>> pymongo.version
'3.11.2'
>>>

在命令行首先输入 python3,进入命令行模式,输入如上内容,如果成功输出了其版本内容,那么证明 PyMongo 成功安装。

安装配置

lxml 是 Python 的一个解析库,支持 HTML 和 XML 的解析,支持 XPath 解析方式,而且解析效率非常高,本节我们了解下它的安装方式,分为 Windows、Linux、Mac 三大平台来介绍。

相关链接

  • 官方网站:http://lxml.de
  • GitHub:https://github.com/lxml/lxml
  • PyPi:https://pypi.python.org/pypi/lxml

安装方法

Windows 下的安装

Windows 下可以先尝试利用 pip3 安装,直接执行如下命令即可:

1
pip3 install lxml

如果没有任何报错则证明安装成功。

如果出现报错,比如提示缺少 libxml2 库等信息,可以采用 wheel 方式安装。

推荐直接到这里下载对应的 wheel 文件,链接为:http://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml,找到本地安装 Python 版本和系统对应的 lxml 版本,例如 Windows 64 位 Python3.6 就选择 lxml‑3.8.0‑cp36‑cp36m‑win_amd64.whl,以此类推,将其下载到本地。

然后利用 pip3 安装即可,命令如下:

1
pip3 install lxml‑3.8.0cp36cp36mwin_amd64.whl

这样我们就可以成功安装好 lxml 了。

Linux 下的安装

在 Linux 平台下安装问题不大,同样可以先尝试 pip3 安装,命令如下:

1
pip3 install lxml

如果报错,可以尝试下方的解决方案。

CentOS、RedHat

对于此类系统,报错主要是因为缺少必要的库。

执行如下命令安装所需的库即可:

1
2
sudo yum groupinstall -y development tools
sudo yum install -y epel-release libxslt-devel libxml2-devel openssl-devel

主要是 libxslt-devel libxml2-devel 这两个库,lxml 依赖于它们。安装好了之后重新尝试 Pip 安装即可。

Ubuntu、Debian、Deepin

报错的原因同样可能是缺少了必要的类库,执行如下命令安装:

1
sudo apt-get install -y python3-dev build-essential libssl-dev libffi-dev libxml2 libxml2-dev libxslt1-dev zlib1g-dev

安装好了之后重新尝试 pip 安装即可。

Mac 下的安装

在 Mac 平台下,仍然可以首先尝试 pip3 安装,命令如下:

1
pip3 install lxml

如果产生错误,可以执行如下命令将必要的类库安装:

1
xcode-select --install

之后再重新运行 pip3 安装就没有问题了。

lxml 是一个非常重要的库,比如 BeautifulSoup、Scrapy 框架都需要用到此库,所以请一定安装成功。

验证安装

安装完成之后,可以在 Python 命令行下测试。

1
2
$ python3
>>> import lxml

如果没有错误报出,则证明库已经安装好了。