爬蟲環境配置 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來打包和部署爬蟲很方便。