Python3 網絡爬蟲(請求庫的安裝)

Python3 網絡爬蟲(請求庫的安裝)

爬蟲能夠簡單分爲幾步:抓取頁面,分析頁面和存儲數據javascript

在頁面爬取的過程當中咱們須要模擬瀏覽器向服務器發送請求,因此須要用到一些python庫來實現HTTP的請求操做,咱們用到的第三方庫有requests Selenium 和aiohttpcss

requests 的安裝

相關連接:html

  • GitHub :https://github.com/requests/requests
  • PypI:https://pypi.python.org/pypi/requests
  • 官方文檔:http://www.python-requests.org
  • 中文文檔:http://docs.python-request.org/zh_CN/latest

安裝:java

最好用的安裝方式:pip 安裝node

pip3 install  requestspython

驗證是否安裝成功mysql

打開控制檯進入命令行模式,首先輸入python3 而後輸入import requests   若是什麼報錯或提示說明安裝成功linux

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#__author__=v_zhangjunjie02
import requests

 

Selenium 的安裝

selenium是一種自動化測試工具,利用它能夠驅動瀏覽器執行特定的動做,如點擊,下拉等操做,對於一些JavaScript 渲染的頁面來講,這種抓取方式很是有效,下面來看看selenium 的安裝過程android

相關連接ios

  • 官方網站:http://www.seleniumhq.org
  • GitHub :https://github.com/SeleniumHQ/selenium/tree/master/py
  • PypI: https://pypi.python.org/pypi/selenium
  • 官方文檔:http://selenium-python.readthedocs.io
  • 中文文檔:http://selenium-python-zh.readthedocs.io

仍是用pip 安裝

pip3 install selenium

驗證是否安裝成功:

打開控制檯進入命令行模式,首先輸入python3 而後輸入import selenium   若是什麼報錯或提示說明安裝成功

ChromeDriver 的安裝

前面咱們已經安裝好了Selenium庫,可是它是一個自動的測試工具,須要瀏覽器來配合使用,下面咱們是Chrome瀏覽器和ChromeDriver驅動的配置

首先下載chromedriver 

隨後安裝chromedriver ,由於安裝了Chromedriver 才能驅動Chrome完成相應的操做

Chromedriver 相關連接

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

安裝的chromedriver  要和Chrome 的版本一致

 環境變量的配置:

1.下載完成後 將ChromeDriver 的可執行文件配置到環境變量下

在Windows下建議直接將chromedriver.exe 文件拖拽到Python的Script 目錄下,此外還能夠單獨配置其所在路徑到環境變量

在Linux 和Mac 下須要將可執行文件配置到環境變量,或將文件移動到所屬環境變量的文件裏

例如,要移動文件到/user/bin 目錄 ,首先須要在命令行模式下進入其文件的所在路徑,而後將其移動到/user/bin:  

sudo mv chromedriver /user/bin

另外若是你的系統是Mac OS X  EI Capitan 及更新版本的話,須要關閉Rootless 內核保護機制,具體參考http://www.pc6.com/edu/86809.html

 

 固然,也能夠將ChromeDriver 配置到$PATH :首先,能夠將可執行文件放到某一目錄,目錄能夠任意選擇,例如將當前的可執行文件放到/user/local/chromedriver 目錄下,接下來在Linux 下修改~/.profile 文件,在Mac 下能夠修改~/.bash_profile文件添加以下內容

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

保存後Linux下執行以下命令:

source ~/.profile

在mac 下執行:

source ~/.bash_profile

便可完成環境變量的添加

咱們在程序中測試,執行以下代碼:

from selenium import webdriver

browser=webdriver.Chrome()

運行以後,若是彈出一個空白的Chrome 瀏覽器,則證實全部的配置都沒有問題,若是沒有彈出,則須要檢查以前的每一步配置

若是彈出後閃退,多是Chrome 版本和chromedriver  版本不兼容致使的,更換對應的版本便可

 

GeckoDriver 的安裝

GeckoDriver 是Firefox 瀏覽器的驅動

它的安裝以下:

相關連接:

  • GitHub:https://github.com/mozilla/geckodriver
  • 下載地址:https://github.com/mozilla/geckodriver/releases

咱們能夠在github 上找到它的發行版本

 

 環境變量配置同上

 

 

 PhantomJS 的安裝

phantomjs 是一個無界面,可腳本編程的WebKit瀏覽器引擎,它原生支持多種Web 標準:DOM操做,css 選擇器,JSON ,Canvas 以及SVG

selenium支持phantomjs ,在運行的時候不會彈出一個瀏覽器,並且phantomjs 的運行效率也很高,還支持各類參數配置,使用很是方便:它的安裝以下:

相關連接:

  • 官方網站:http://phantomjs.org
  • 官方文檔:http://phantomjs.org/quick-start.html
  • 下載地址:http://phantomjs.org/download.html
  • API 接口說明:http://phantomjs.org/api/command-line.html

咱們在官網上下載對應的安裝包後,須要將可執行文件添加進環境變量(環境變量的添加方法,同上)

驗證是否配置成功:在命令行輸入phantomjs-v 若是輸出對應的版本,說明配置成功

驗證是否安裝成功:

from selenium import webdriver

browser=webdriver.PhantomJS()

browser.get('https://www.baidu.com')

print(browser.current_url)

運行後不會有瀏覽器彈出,可是把url打印出來了,說明安裝成功了

 

 

aiohttp 的安裝

以前介紹的requests 庫是一個阻塞式HTTP請求庫,當咱們發送一個請求後,程序會一直等待服務器響應,直到獲得響應後程序纔會作下一步處理,其實這個過程比較費時,若是程序能夠在等待的過程當中作一些其餘的事情,如請求的調度,響應的處理等,那麼爬取效率必定會大大提升

aiohttp 就是這樣一個提供異步web服務的庫,從python3.5 開始,Python加入了async/await 關鍵字,使的回調的方法更加直觀和人性化,aiohttp 的異步操做藉助於 async/await  關鍵字的寫法變得更加簡潔,架構更加清晰,使用異步請求庫進行數據抓取時,會大大提升s效率(好比維護一個代理池,利用異步的方式檢測大量代理的運行狀況,會極大提高效率)

它的安裝:

相關連接:

  • 官方文檔:http://aiohttp.readthedocs.io/en/stable
  • GitHub:https://github.com/aio-libs/aiohttp
  • PyPI:https://pypi.python.org/pypi/aiohttp

pip 安裝

pip3 install aiohttp

另外,官方還推薦安裝以下兩個庫:一個是字符編碼檢測庫cchardet ,另外一個是加速DNS的解析庫aiodns 安裝命令以下

pip3 install cchardet aiodns

測試安裝:

在python命令下導入 import aiohttp  若是沒有報錯,說明安裝成功

 

 

解析庫的安裝

抓取網頁以後,下一步就是從網頁中提取信息,提取信息的方式有多種多樣,可使用正則來提取,可是寫起來相對比較繁瑣,這裏還有不少強大的解析庫:如 lxml ,Beautiful Soup ,pyquery  等,此外還提供了大量的解析方法。如Xpath 解析和CSS 選擇器解析等,利用它,們咱們能夠便捷高效的從網頁中提取有用的信息

lxml 的安裝

lxml 是python的一個解析庫,支持HTML 和XML 的解析,支持Xpath 解析方式,並且解析效率很是高,它的安裝以下:

相關連接:

官方網站:http://lxml.de

GitHub: https://github.com/lxml/lxml

PyPI: https://pypi.python.org/pypi/lxml

mac 下安裝

使用pip 安裝:pip3 install lxml 

若是產生錯誤,能夠執行以下命令將必要的類庫安裝

xcode-select --install 

以後再從新嘗試pip  安裝就沒有問題了

lxml  是一個很是重要的庫,後面的Beautiful Soup Scrapy 都要用到此庫,因此必定要安裝成功

 

 

Beautiful Soup 的安裝

Beautiful  soup 是python的一個HTML 或XML的解析庫,咱們能夠用它來方便的從網頁中提取數據,它擁有強大的API和多樣的解析方式,它的安裝以下:

相關連接:

官方文檔:https://www.crummy.com/software/BeautifulSoup/bs4/doc

中文文檔:https://www.crummy.com/software/BeautifulSoup/bs4/doc.zh

PyPi:https://pypi.python.org/pypi/beautifulsoup4

準備工做:

Beautiful  soup 的HTML ,XML的解析庫依賴於 lxml 庫,因此安裝以前確保已經安裝成功了 lxml 庫

pip 安裝

pip3 install beautifulsoup4

驗證安裝:

from bs4 import BeautifulSoup

soup=BeautifulSoup('<p>Hello</p>','lxml')

print(soup.p.string)

運行結果以下:

Hello

若是一致,說明安裝成功

⚠️注意,這裏咱們雖然安裝的是beautifulsoft4 這個包,可是引入的時候卻引入bs4, 這是由於這個包源代碼自己的庫文件夾的名稱就是bs4

 

 

pyquery 的安裝

pyquery 一樣是一個強大的網頁解析工具,它提供了相似 jQuery  相似的語法來解析HTML文檔,支持css  選擇器,使用很是方便,它的安裝以下:

相關連接:

GitHub:https://github.com/gawel/pyquery

PyPI : https://pypi.python.org/pypi/pyquery

官方文檔:http://pyquery.readthedocs.io

 

pip 安裝

pip3 install pyquery

驗證同上

 

 

tesserocr  的安裝

在爬蟲的過程當中不免會遇到各類各樣的驗證碼,大多數驗證碼都是圖形驗證碼,這時候咱們能夠直接用ocr  來識別

tesserocr是python的一個OCR庫,但實際上是對tesseract 作的一層Python API 的封裝,因此它的核心是tesseract ,所以在安裝tesserocr 以前,咱們須要安裝tesseract

相關連接

  • tesserocr GitHub :https://github.com/sirfz/tesserocr
  • tesserocr PyPI : https://pypi.python.org/pypi/tesserocr
  • tesseract 下載地址:http://digi.bib.uni-mannheim.de/tesseract
  • tesseract GitHub :https://github.com/tesseract-ocr/tesseract
  • tesseract 語言包:https://github.com/tesseract-ocr/tessdata
  • tesseract 文檔:https://github.com/tesseract-ocr/tesseract/wiki/Documentation

Mac 下安裝

brew 的安裝參考:https://brew.sh/

或在終端執行/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
 

首先使用Homebrew 安裝ImageMagick 和tesseract

brew install imagemagick

brew install tesseract --all-languages

接下來咱們再安裝tesserocr

pip3 install tesserocr pillow

這樣咱們便完成了tessercor 的安裝

 

 

數據庫的安裝 

MySql的安裝

MySql 是一個輕量級的關係型數據庫,

相關連接

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

mac 下安裝

brew instal mysql

啓動,中止和重啓MySQl服務的命令

sudo mysql.server start 

sudo mysql.server stop

sudo mysql.server restart

 

MongoDB 的安裝

mongoDB  是由c++ 語言編寫的非關係型數據庫,是一個基於分佈式文件存儲的開源數據庫系統,其內容存儲形式相似json 對象,他的字段值能夠包含其餘文檔,數組及文檔數組,很是靈活

mangoDB 支持多種平臺,包括windows,linux ,MAX OS  在其官方網站上(http://www.mangodb.com/download-center)都可找到對應的安裝包

它的安裝過程

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

Mac  下安裝

brew install mongodb

而後新建一個文件夾/data/db   用於存放MongoDB 數據

這裏啓動MongoDB 服務的命令以下

brew services start mongodb

sudo mongod

中止和重啓MongoDB 服務的命令分別是

brew services stop mongodb

brew services restart mongodb

可視化工具

這裏推薦一個可視化工具 RoboMongo/Robo 3T  官方網站爲:https://robomongo.org/下載連接:https://robomongo.org/download

 

 

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

 

mac 下安裝

brew install redis

啓動Redis 服務的命令以下

brew services start redis

redis-server /use/local/etc/redis.conf

在mac 下Redis 的配置文件路徑是/user/local/etc/redis.conf  能夠經過修改它來配置訪問密碼

修改配置文件後,須要重啓Redis 服務,中止和重啓Redis 服務的命令分別以下

brew services stop redis

brew services restart redis

另外,在mac  下能夠安裝Redis Desktop Manager 可視化管理工具來管理Redis

 

 

存儲庫的安裝

PyMySql的安裝

相關連接

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

pip安裝

pip3 install pymysql

PyMongo 的安裝

pip3 install pymongo

redis-py的安裝

pip3 install redis

 

 

 

RedisDump 的安裝

它是一個用於將redis 數據導入導出的工具,基於Ruby實現,要想安裝它先的安裝Ruby、

1.相關連接:

GitHub :https://github.com/delano/redis-dump

官方文檔:http://delanotes.com/redis-dump

2.安裝Ruby

參考:http://www.ruby-lang.org/zh_cn/documentation 

3.gem 安裝

gem install redis-dump

4.驗證安裝

redis-dump

redis-load 

若是這兩條命令能夠成功調用,說明安裝成功

 

 

web庫的安裝

flask 的安裝

相關連接

Github:https://github.com/pallets/flask

官方文檔:http://flask.pocoo.org

中文文檔:http://docs.jinkan.org/docs/flask

PyPi: https://pypi.python.org/pypi/Flask

安裝

pip3 install flask

 

tornado的安裝

tornado是一個支持異步的web框架,經過使用非阻塞I/O 流,它能夠支持成千上萬的開放連接,效率很是高

1.相關連接

GitHub : https://github.com/tornadoweb/tornado

PyPI : https://pypi.python.org/pypi/tornado

官方文檔: http://www.tornadoweb.org

安裝

pip install tornado

 

mitmproxy  的安裝

mitmproxy 是一個支持http和https 的抓包程序,相似於fiddler 和charles  只不過,它是經過控制檯的形式去操做

此外mitproxy 還有兩個相關組件,mitmdump ,它是mitmproxy 的命令行接口,利用它能夠對接python腳本,實現監聽後的處理;一個是mitmweb 它是一個web程序,經過它能夠清楚的觀察到mitmproxy 捕獲的請求

它們的安裝以下:

  • 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

安裝方式一:mac 下安裝

pip3 install mitmproxy

若是不行執行

brew  install mitmproxy

證書設置:

對於mitmproxy 來講,若是想捕獲https 請求須要設置證書,mitmproxy 在安裝後會提供一套CA證書,只要客戶端信任了mitmproxy 提供的證書,就能夠經過mitmproxy 捕獲https請求

首先運行如下命令產生CA證書

mitmdump

接下來在用戶目錄下的.mitmproxy 目錄裏找到CA 證書,證書一共有5個

 

Appium 的安裝

Appium是移動端的自動化測試工具,利用它能夠驅動Android 和 IOS 等設備完成自動化的測試 其官方網站爲:http://appium.io

1.相關連接:

GitHub : https://github.com/appium/appium

官方網站:http://appium.io

官方文檔:http://appium.io/introduction.html

下載連接:https://github.com/appium/appium-desktop/release

Python Client :https://github.com/appium/python-clent

安裝appium

appium 負責驅動移動端來完成一系列操做對於ios 來講,它使用蘋果的UIAutonation 來實現驅動,對於Android  來講,它使用UIAutomator 和Selendroid  來實現驅動

同時Appiumd 至關於一個服務器,咱們能夠向它發送一些操做指令,他會根據不一樣的指令對移動端設備完成不一樣的操做

安裝Appium 有兩種方式,一種是直接下載Appium  Desktop  來安裝,另外一種是經過node.js 來安裝

 

Appium Desktop 

連接地址:https://github.com/appium/appium-desktop/releases

 

 推薦使用node.js 安裝

使用node.js 安裝先要安裝node.js  參考連接:http://www.runoob.com/nodejs/nodejs-install-setup.html

而後使用命令npm install -g appium 安裝,這條命令執行完後就完成了appium 的安裝

 

Android   開發環境的配置

Android  環境的配置

下載Android Studio (https://developer.android.com/studio/index.html?hl=zh-cn

 安卓SDK的下載

下載完Android Studio後直接在Android  的設置頁面勾選要安裝的SDK 便可

另外須要配置下環境變量,參考地址:https://developer.android.com/studio/intro/index.html

 

爬蟲框架的安裝

pyspidei 的安裝

  • 官方文檔: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 

使用pip 安裝

pip3 install pyspider

驗證安裝:

命令行執行

pyspider all

在瀏覽器中輸入http://localhost:5000/

相關文章
相關標籤/搜索