爬蟲環境配置
爬蟲環境配置,主要安裝爬蟲所需要的軟件以及包含庫
軟件:
Anaconda 庫環境支持軟件
Python3
Jupyter / jupyter lab pythonIDE
Pycharm pythonIDE
相關庫安裝:
1 請求庫 向瀏覽器發送請求
2 解析庫 解析服務器返回數據,查找,匹配,提取數據
3 數據庫 存儲爬取的數據
4 存儲庫 使用python支持存數據庫的庫實現對數據庫的讀寫
5 web庫 構建簡單的web網絡夫區,搭建api接口,供代理池使用
6 爬蟲框架 大型的爬蟲需要爬蟲框架支持
7 部署庫 用來將爬蟲部署到多機, 實現分布式爬蟲
1請求庫安裝
-
requests請求庫
pip install requests
第三方的請求庫,用來向服務器發送數據,發起請求
1.2selenium 自動化測試工具
Pip install selenium
Selenium 用來驅動瀏覽器執行模擬瀏覽的動作,模擬點擊,下拉等。
對於使用js渲染的頁面可以有效的抓取
驗證安裝是否成功:
在python環境內 import selenium 無報錯即可
1.3chrome driver 驅動安裝
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的空白彈窗即可
1.4phantomjs安裝
Selenium在驅動瀏覽器的是時候會打開瀏覽器, 加載慢不方便, 因此需要一個無彈窗的后台模擬瀏覽器,加載數據,實現命令行的友好操作。
官網下載phantomjs http://phantomjs.org/download.html
官網文檔:http://phantomjs.org/api/
下載后的bin文件夾中有phantomjs.exe文件, 將該文件同樣放置在爬蟲環境中的script文件夾中(該路徑要配置在環境變量中)
驗證安裝cmd中:phantomjs 無報錯即可
1.5 aiohttp 異步請求庫
Request http 請求庫是單步的請求庫,每次只能發起一個請求並等待服務器回應,使用該庫在大型的爬蟲中會非常浪費時間以及資源。故此需要一個支持同時發起多個請求的請求庫,aiohttp就可以實現異步請求。
安裝 pip install aiohttp
驗證: python環境下 import aiohttp 無報錯即可
字符編碼檢測庫: cchardet DNS解析加速庫: aiodns
2解析庫安裝
解析庫:發起請求完畢后,服務器會返回數據,要從返回的網頁數據中提取數據就需要解析庫。
提取信息方式:
正則匹配
解析信息方式:
Xpath 解析
Css 選擇器解析
常用的解析庫:
Beautifulsoup、 ,lxml、puquery
2.1 lxml 解析庫安裝
Lxml解析庫支持HTML解析,支持xpath解析,解析效率較高
安裝:
Pip install lxml
2.2 beautifulsoup 解析庫安裝
Beautifulsoup 庫支持html和xml解析, =可以快捷的從網頁中提取數據,有強大的api以及多種解析方式是
·安裝:
Pip install beautifulsoup4
2.3 pyquery 解析庫安裝
Pyquery支持Jquery和HTML解析, 支持CSS選擇器,使用簡單
安裝:
Pip install pyquery
3 數據庫軟件安裝
安裝不同類型的數據庫,用來高效的存儲爬取的數據
主要的數據庫包括:
關系型數據庫:mysql
面向文檔的非關系型數據庫: mongodb
非關系型key-value 數據庫 redis
3.1 mysql安裝
官網下載mysql安裝軟件 https://dev.mysql.com/downloads/mysql/ 注意版本的對應
安裝參照其他詳細教程
注意:
安裝的時候基本上一路next,注意安裝workbench 用來對數據庫可視化交互
安裝的過程中本地的mysql服務會創建密碼,要記住密碼
驗證安裝:
在電腦的服務中會有mysql57服務,證明安裝成功
保證該服務是自動啟動運行的狀態。
3.2 mongodb 安裝
官網下載mongofb4.0
現在要求注冊以才能下載安裝文件,因此要先在官網注冊賬戶,安裝的時候一路next設置密碼即可
驗證安裝;
在服務中會有mondb的服務正在運行表示安裝成功
3.3 redis 安裝
在redis的guithub下載安裝源文件即可
https ://github.com.uglide/RedisDesktopManager/releases 一路next即可
驗證安裝:
在服務中同樣有redis服務表示安裝成功
安裝redis desktop 可視化管理工具,用來管理redis數據庫
在github 搜索redis desktop 選擇第一個uglide/RedisDesktopManager 在他的release 發行版本中選擇穩定的版本按章,一路next即可。
安裝完成后配置本地連接;
測試成功即可
4 python 交互存儲庫安裝
安裝完成數據庫以后,python和數據庫交互的時候需要相關的庫支持
包括;
Pymysql 庫
PyMongo 庫
Redis-py 庫
4.1 以上支持庫的安裝 pip install 庫名 即可
4.2 安裝redisdump
Redisdump 用於redis的數據導入導出工具基於ruby實現, 需要安裝ruby
Rubyinstaller下載地址https://rubyinstaller.org/downloads/ 下載完成后根據提示配置基礎運行環境
配置完成后在ruby控制台運行 gem install redis-dump
安裝完成后運行redis-dump 以及redis-load 無報錯即可
5 web庫安裝
在爬蟲中使用web庫搭建API接口,配合redis數據庫搭建代理池, 通過API 接口拿到代理,簡單快捷
主要的web庫包括;
Flask: 輕量級web支持庫 利用flask+redis搭建代理池
當然也可以快捷購買代理
安裝;
pip install flask
Tornado 支持異步請求的web框架, 效率高
安裝:
Pip install tornado
這兩個web框架,二選一即可
6 app爬取庫安裝
為了抓取app的數據, 需要app支持庫來加載app頁面
6.1 抓包工具 Charles 安裝
要加載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代理
6.2 appium 自動化測試工具安裝
使用appium軟件可以通過python代碼實現對你手機的自動化的點擊,滑動等動作的操作,模擬人的對手機的操作。
Appium 官網下載:
使用app抓取數據需要安卓環境的支持,配置android sdk環境
安裝andriod studio 在Androidstudio中安裝sdk
Sdk環境配置:
7 爬蟲框架安裝
在爬取工作量不大的時候可以使用request以及selenium庫爬取就可以滿足需求。
而大型的大量數據的爬取需要簡化流程的爬蟲框架的支持,只需要關心爬蟲的邏輯不用關心爬蟲的具體的模塊功能的實現。簡化代碼。
主要的流行爬蟲框架包括:
1 Pyspider 具有UI,腳本編輯器,任務控制器,項目管理器,結果處理器。支持多種數據庫,多種消息隊列,支持JS渲染頁面爬取使用簡單方便
2 scrapy 依賴庫較多, 功能強大,安裝麻煩,需要提前安裝支持庫
7.1 pyspider 框架安裝
安裝 pip install pyspider
或者 anacond安裝, conda install pyspider
驗證安裝: cmd pyspider all
輸出如下;
7.2 scrapy 框架安裝
Scrip 是個強大的框架,但是依賴的python庫比較多,因此安裝之前需要提前安裝很多的支持庫。因此建議使用anaconda安裝的方式。Anaconda會自動安裝scrapy所需要的支持庫。
Anaconda安裝 conda install scrapy
7.3 scrapy-splash Javascript支持渲染工具安裝
Scrapy-splash 是 javascript的渲染工具
Scrapy-splash的安裝分為連個部分:splash服務,以及scrapy-splash的python庫安裝。
Splash服務通過docker安裝,安裝完成后會啟動splash服務,通過它的接口,實現javascript頁面加載。
Scrapy-splash python庫安裝通過pip安裝,安裝完成后在scrapy中使用splash服務。
8 Docker安裝
Docker的容器技術用來部署爬蟲,通過ddocker將爬蟲的環境和應用打包,然后再在主機上使用docker部署即可運行新的爬蟲
在docker官網下載,docker desktop 安裝直接一路next。然后配置docker鏡像源,由於訪問國外的鏡像速度很慢,因此需要配置國內的鏡像來加速下載。
使用docker來打包和部署爬蟲很方便。