《Python3網絡爬蟲開發實戰》筆記 第1章 開發環境配置

這章主要是爲網絡爬蟲做準備,配置一個開發環境, 爲了方便,操作系統爲Windows

1.1 安裝Python3

       主要安裝Anaconda 3 64bit

 

1.2 請求庫安裝 (瀏覽器方面)

      爬蟲可以分爲簡單幾步: 抓取頁面,分析頁面和存儲數據。

     requests庫: 在抓取頁面過程中,我們需要模擬瀏覽器向服務器發出請求。

     安裝方法:  pip3 install requests

    selenium庫: 一個自動化測試工具,利用它可以驅動瀏覽器執行特定的動作。如點擊、下拉等操作。

     安裝方法: pip3 install selenium

    

 

      安裝Chrome瀏覽器或ChromeDriver驅動,與Selenium對接

      在 http://npm.taobao.org/mirrors/chromedriver/ 下載chromeDriver

      下載後,將chromedriver.exe 複製到 C:\Users\yunys\AppData\Local\Continuum\Anaconda3\Scripts

      測試是否成功: 啓動python

      from  selenium import webdriver

      browse = webdriver.Chrome()

      就會彈出一個空白的Chrome瀏覽器。

     對於Firefox來說,就需要安裝GeckoDriver,與Selenium對接

     在 https://github.com/mozilla/geckodriver/releases/tag/v0.23.0    下載geckodriver-v0.23.0-win64.zip

     下載後,將geckodriver.exe 複製到 C:\Users\yunys\AppData\Local\Continuum\Anaconda3\Scripts

      測試是否成功: 啓動python

      from  selenium import webdriver

      browse = webdriver.Firefox()

 

     PhantomJS是一個無界面的、可腳本編程的WebKit瀏覽器引擎,它原生支持多種Web標準:DOM操作,CSS選擇器、JSON、Canvas以用SVG。

      在 https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-windows.zip   下載

      將phantomjs.exe 複製到 C:\Users\yunys\AppData\Local\Continuum\Anaconda3\Scripts

     requests庫是一個阻塞式HTTP請求庫, 而aiohttp是一個提供異步Web服務的庫。

     安裝: pip3 install aiohttp    

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

     pip3 install cchardet aiodns

 

1.3 解析庫的安裝

    抓取網頁代碼後,下一步就是從網頁中提取信息,使用正則來提取。

    lxml是Python的一個解析庫,支持HTML和XML解析,支持XPath解析方法。

   安裝:  pip3  install lxml

   Beautiful Soup是Python的一個HTML或XML的解析庫,從網頁中提取數據。

   安裝:  pip3  install beautifulsoup4

    >>> from bs4 import BeautifulSoup
    >>> soup = BeautifulSoup('<p>Hello</p>','lxml')
     >>> print(soup.p.string)
     Hello

    pyquery一個強大的網頁解析工具。

    安裝:  pip3 install  pyquery

    tesserocr,  在爬蟲過程中,有各種各樣的驗證碼,可通過tesserocr來識別驗證碼,

    tesserocr是python的一個OCR識別庫,是對tesseract做的一層PythonAPI封裝,核心是tesseract,在安裝tesserocr之前需要先安裝tesseract.

    安裝tesseract:  https://digi.bib.uni-mannheim.de/tesseract/ 

                                下載 tesseract-ocr-setup-3.05.01.exe

      tesseract  --list-langs    顯示支持的語言

      測試tesseract是否安裝成功

     >tesseract f:\image.png result -l eng

       Tesseract Open Source OCR Engine v3.05.01 with Leptonica

      >type result.txt
       Python3WebSpider

     ----------------------------------------------------------------------------------------

      安裝tesserocr比較麻煩,步驟如下:

      進入Python,查看pip支持版本

      import  pip

     import pip._internal

     print(pip._internal.pep425tags.get_supported())

    顯示如下:

      [('cp35', 'cp35m', 'win_amd64'), ('cp35', 'none', 'win_amd64'), ('py3', 'none','win_amd64'),......]

     根據以上紅色內容,在  https://github.com/simonflueckiger/tesserocr-windows_build/releases  查找

      tesserocr-2.2.2-cp35-cp35m-win_amd64.whl  下載

      然後,pip3 install tesserocr-2.2.2-cp35-cp35m-win_amd64.whl, 就將tesserocr安裝完成

      再安裝 pillow

      pip3 install pillow

      最關鍵一步:將 C:\Program Files (x86)\Tesseract-OCR 安裝目錄下的 tessdata 目錄拷貝到

       C:\Users\yunys\AppData\Local\Continuum\Anaconda3  Anaconda3的安裝目錄

       測試tesserocr是否安裝成功

        >>> import tesserocr
        >>> from PIL import Image    #PIL 就是 pillow
        >>> image = Image.open('f:\image.png')
        >>> print(tesserocr.image_to_text(image))
        Python3WebSpider

 

1.4 數據庫安裝

       數據庫我選 MySQL,  具體方法這裏不說了。

       在Python3中,將數據存儲到MySQL中,需要藉助PyMySQL來操作。

       安裝: pip3 install pymysql

        驗證安裝是否成功

        >>> import pymysql
        >>> pymysql.VERSION
         (0, 9, 2, None)

        >>> db = pymysql.connect('localhost','root','mysql','review')
        >>> cursor = db.cursor()

        >>> cursor.execute("use review")
         >>> cursor.execute("select fhbh from reviewprj limit 3")
        3
         >>> results = cursor.fetchall()
          >>> for row in results:
.                     print(row[0])

            複覈〔2013〕0636號
            複覈〔2013〕0637號
            複覈〔2013〕0638號
            >>>  ##成功!

         這裏學習一下Redis

         Redis是一個基於內存的高效的非關係型數據庫。

         下載:  https://github.com/MicrosoftArchive/redis/releases  ,下載 Redis-x64-3.2.100.msi

         Redis的端口是 6379, 安裝後,Redis會以服務的方式在後臺運行。

         爲了管理方便,需要安裝一個 Redis Desktop Manager.  

          下載:  https://github.com/uglide/RedisDesktopManager/releases/tag/0.8.8 

          redis-desktop-manager-0.8.8.384.exe

         Python與redis交互用 redis-py

         安裝: pip3 install redis

 

1.5  Web庫的安裝

         Flask是一個輕理級的Web服務程序

         安裝:  pip3 install flask

         驗證安裝成功

         >>> app = Flask(__name__)
         >>> @app.route("/")
                 def hello():
                      return "Hello world"

          >>> if __name__ == "__main__":
                     app.run()
           * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

     Tornado是一個支持異步的Web框架,通過使用非阻塞I/O流。  

     安裝: pip3 install   tornado

       測試安裝成功

       import tornado.ioloop

       import tornado.web

        class MainHandler(tornado.web.RequestHandler):
                    def get(self):
                    self.write("Hello , world")

         def make_app():
                return tornado.web.Application([
                      (r"/", MainHandler),
                ])

          if __name__ == "__main__":
                  app = make_app()
                  app.listen(8888)
                 tornado.ioloop.IOLoop.current().start()

 

1.6 爬蟲框架的安裝

      pyspider: 國人編寫的強大的網絡爬蟲框架,帶有強大的WebUI,腳本編輯器,任務控制器、項目管理器和結果處理器。

      安裝: pip3   install  pyspider

      scrapy: 另一個爬蟲框架

      安裝: conda  install Scrapy

 

      大部分的安裝環境和配置已完成,待在以後發現運行有問題再回來修改! 

        

 

       

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章