爬虫环境配置 javascript
软件: html
Anaconda 库环境支持软件 java
Python3 python
Jupyter / jupyter lab pythonIDE mysql
Pycharm pythonIDE android
相关库安装: git
1 请求库 向浏览器发送请求 github
2 解析库 解析服务器返回数据,查找,匹配,提取数据 web
3 数据库 存储爬取的数据 redis
4 存储库 使用python支持存数据库的库实现对数据库的读写
5 web库 构建简单的web网络夫区,搭建api接口,供代理池使用
6 爬虫框架 大型的爬虫须要爬虫框架支持
7 部署库 用来将爬虫部署到多机, 实现分布式爬虫
pip install requests
第三方的请求库,用来向服务器发送数据,发起请求
Pip install selenium
Selenium 用来驱动浏览器执行模拟浏览的动做,模拟点击,下拉等。
对于使用js渲染的页面能够有效的抓取
验证安装是否成功:
在python环境内 import selenium 无报错便可
Selenium 自动化测试工具,能够模拟浏览器进行模拟人工的操做,所以须要能够模拟操做的浏览器,即google的chrome浏览器。
可是,selenium不能直接驱动chrome进行模拟操做,所以须要安装配置单独的浏览器驱动来经过chromedriver驱动 浏览器chrome
在chrome官网下载本身的chrome对应版本的chromedriver, 将单独的chromedriver.exe 文放置的爬虫环境的script文件夹中, 该文件夹要包含在本机的环境变量中,
淘宝镜像地址:http://npm.taobao.org/mirrors/chromedriver/
验证安装:cmd中输入 chromedriver 有下列输出便可
爬虫环境下:
From selenium import webdriver
Browser = webdriver.Chrome()
出现chrome的空白弹窗便可
Selenium在驱动浏览器的是时候会打开浏览器, 加载慢不方便, 所以须要一个无弹窗的后台模拟浏览器,加载数据,实现命令行的友好操做。
官网下载phantomjs http://phantomjs.org/download.html
官网文档:http://phantomjs.org/api/
下载后的bin文件夹中有phantomjs.exe文件, 将该文件一样放置在爬虫环境中的script文件夹中(该路径要配置在环境变量中)
验证安装cmd中:phantomjs 无报错便可
Request http 请求库是单步的请求库,每次只能发起一个请求并等待服务器回应,使用该库在大型的爬虫中会很是浪费时间以及资源。故此须要一个支持同时发起多个请求的请求库,aiohttp就能够实现异步请求。
安装 pip install aiohttp
验证: python环境下 import aiohttp 无报错便可
字符编码检测库: cchardet DNS解析加速库: aiodns
解析库:发起请求完毕后,服务器会返回数据,要从返回的网页数据中提取数据就须要解析库。
提取信息方式:
正则匹配
解析信息方式:
Xpath 解析
Css 选择器解析
经常使用的解析库:
Beautifulsoup、 ,lxml、puquery
Lxml解析库支持HTML解析,支持xpath解析,解析效率较高
安装:
Pip install lxml
Beautifulsoup 库支持html和xml解析, =能够快捷的从网页中提取数据,有强大的api以及多种解析方式是
·安装:
Pip install beautifulsoup4
Pyquery支持Jquery和HTML解析, 支持CSS选择器,使用简单
安装:
Pip install pyquery
安装不一样类型的数据库,用来高效的存储爬取的数据
主要的数据库包括:
关系型数据库:mysql
面向文档的非关系型数据库: mongodb
非关系型key-value 数据库 redis
官网下载mysql安装软件 https://dev.mysql.com/downloads/mysql/ 注意版本的对应
安装参照其余详细教程
注意:
安装的时候基本上一路next,注意安装workbench 用来对数据库可视化交互
安装的过程当中本地的mysql服务会建立密码,要记住密码
验证安装:
在电脑的服务中会有mysql57服务,证实安装成功
保证该服务是自动启动运行的状态。
官网下载mongofb4.0
如今要求注册以才能下载安装文件,所以要先在官网注册帐户,安装的时候一路next设置密码便可
验证安装;
在服务中会有mondb的服务正在运行表示安装成功
在redis的guithub下载安装源文件便可
https ://github.com.uglide/RedisDesktopManager/releases 一路next便可
验证安装:
在服务中一样有redis服务表示安装成功
安装redis desktop 可视化管理工具,用来管理redis数据库
在github 搜索redis desktop 选择第一个uglide/RedisDesktopManager 在他的release 发行版本中选择稳定的版本按章,一路next便可。
安装完成后配置本地链接;
测试成功便可
安装完成数据库之后,python和数据库交互的时候须要相关的库支持
包括;
Pymysql 库
PyMongo 库
Redis-py 库
Redisdump 用于redis的数据导入导出工具基于ruby实现, 须要安装ruby
Rubyinstaller下载地址https://rubyinstaller.org/downloads/ 下载完成后根据提示配置基础运行环境
配置完成后在ruby控制台运行 gem install redis-dump
安装完成后运行redis-dump 以及redis-load 无报错便可
在爬虫中使用web库搭建API接口,配合redis数据库搭建代理池, 经过API 接口拿到代理,简单快捷
主要的web库包括;
Flask: 轻量级web支持库 利用flask+redis搭建代理池
固然也能够快捷购买代理
安装;
pip install flask
Tornado 支持异步请求的web框架, 效率高
安装:
Pip install tornado
这两个web框架,二选一便可
为了抓取app的数据, 须要app支持库来加载app页面
要加载app中的页面数据,须要获取数据,app的数据的请求通常是经过服务器的专用请求接口来实现的,须要抓包工具来抓取数据,为了实现规模化的自动采集,一样须要自动化测试版工具来实现对手机中app自动化操做,主要的app自动化控制操做工具备appium 和国产的airtest
Charles安装:
官网地址; https://www.charlesproxy.com/download/
Charles须要付费
Charles激活:
Registered Name:https://zhile.io
License Key: 48891cf209c6d32bf4
安装完成之后须要配置证书
Charles教程; https://www.jianshu.com/p/fa351db39b5c
手机须要和电脑链接在同一个局域网下,而且配置手机为Charles代理
使用appium软件能够经过python代码实现对你手机的自动化的点击,滑动等动做的操做,模拟人的对手机的操做。
Appium 官网下载:
使用app抓取数据须要安卓环境的支持,配置android sdk环境
安装andriod studio 在Androidstudio中安装sdk
Sdk环境配置:
在爬取工做量不大的时候可使用request以及selenium库爬取就能够知足需求。
而大型的大量数据的爬取须要简化流程的爬虫框架的支持,只须要关心爬虫的逻辑不用关心爬虫的具体的模块功能的实现。简化代码。
主要的流行爬虫框架包括:
1 Pyspider 具备UI,脚本编辑器,任务控制器,项目管理器,结果处理器。支持多种数据库,多种消息队列,支持JS渲染页面爬取使用简单方便
2 scrapy 依赖库较多, 功能强大,安装麻烦,须要提早安装支持库
安装 pip install pyspider
或者 anacond安装, conda install pyspider
验证安装: cmd pyspider all
输出以下;
Scrip 是个强大的框架,可是依赖的python库比较多,所以安装以前须要提早安装不少的支持库。所以建议使用anaconda安装的方式。Anaconda会自动安装scrapy所须要的支持库。
Anaconda安装 conda install scrapy
Scrapy-splash 是 javascript的渲染工具
Scrapy-splash的安装分为连个部分:splash服务,以及scrapy-splash的python库安装。
Splash服务经过docker安装,安装完成后会启动splash服务,经过它的接口,实现javascript页面加载。
Scrapy-splash python库安装经过pip安装,安装完成后在scrapy中使用splash服务。
Docker的容器技术用来部署爬虫,经过ddocker将爬虫的环境和应用打包,而后再在主机上使用docker部署便可运行新的爬虫
在docker官网下载,docker desktop 安装直接一路next。而后配置docker镜像源,因为访问国外的镜像速度很慢,所以须要配置国内的镜像来加速下载。
使用docker来打包和部署爬虫很方便。