1. 程式人生 > >python爬蟲工具集合

python爬蟲工具集合

python爬蟲工具集合

大家一起來整理吧!強烈建議PR。這是初稿,總是有很多問題,而且考慮不全面,希望大家支援!
原始檔

主要針對python3

常用庫

  • urllib
        - Urllib是python提供的一個用於操作url的模組。
        - 在python2中,有urllib庫和urllib2庫。在python3中,urllib2合併到urllib庫中,我們爬取網頁的時候,經常用到這個庫。
        - urllib庫在python2與python3中的區別
  • urllib3
        -
    github

        - urllib3 is a powerful, sanity-friendly HTTP client for Python. Much of the Python ecosystem already uses urllib3 and you should too. urllib3 brings many critical features that are missing from the Python standard libraries.
  • requests
        - github
        - Requests allows you to send organic, grass-fed HTTP/1.1 requests, without the need for manual labor. There’s no need to manually add query strings to your URLs, or to form-encode your POST data. Keep-alive and HTTP connection pooling are 100% automatic, thanks to urllib3.
  • requests-html
        - github
        - This library intends to make parsing HTML (e.g. scraping the web) as simple and intuitive as possible.
  • beautiful soup
        - doc
        - Beautiful Soup 提供一些簡單的、python 式的函式用來處理導航、搜尋、修改分析樹等功能。它是一個工具箱,通過解析文件為使用者提供需要抓取的資料,因為簡單,所以不需要多少程式碼就可以寫出一個完整的應用程式。Beautiful Soup 自動將輸入文件轉換為 Unicode 編碼,輸出文件轉換為 utf-8 編碼。你不需要考慮編碼方式,除非文件沒有指定一個編碼方式,這時,Beautiful Soup 就不能自動識別編碼方式了。然後,你僅僅需要說明一下原始編碼方式就可以了。Beautiful Soup 已成為和 lxml、html6lib 一樣出色的 python 直譯器,為使用者靈活地提供不同的解析策略或強勁的速度。
  • lxml
        - doc
        - lxml is the most feature-rich and easy-to-use library for processing XML and HTML in the Python language.
  • phantomjs
        - github
        - PhantomJS是一個基於webkit的JavaScript API。它使用QtWebKit作為它核心瀏覽器的功能,使用webkit來編譯解釋執行JavaScript程式碼。任何你可以在基於webkit瀏覽器 做的事情,它都能做到。它不僅是個隱形的瀏覽器,提供了諸如CSS選擇器、支援Web標準、DOM操作、JSON、HTML5、Canvas、SVG等, 同時也提供了處理檔案I/O的操作,從而使你可以向作業系統讀寫檔案等。PhantomJS的用處可謂非常廣泛,諸如前端無介面自動化測試(需要結合 Jasmin)、網路監測、網頁截圖等。
  • selenium
        - doc
        - Selenium 是自動化測試工具。它支援各種瀏覽器,包括 Chrome,Safari,Firefox 等主流介面式瀏覽器,如果你在這些瀏覽器裡面安裝一個 Selenium 的外掛,那麼便可以方便地實現Web介面的測試。換句話說叫 Selenium 支援這些瀏覽器驅動。PhantomJS是一個瀏覽器,那麼 Selenium 支援,二者便可以實現無縫對接了。Selenium支援多種語言開發,安裝一下 Python 的 Selenium 庫,再安裝好 PhantomJS,就可以實現 Python+Selenium+PhantomJS 的無縫對接。PhantomJS 用來渲染解析JS,Selenium 用來驅動以及與 Python 的對接,Python 進行後期的處理。
  • pyquery
        - github
        - doc
        - PyQuery庫也是一個非常強大又靈活的網頁解析庫,如果你有前端開發經驗的,都應該接觸過jQuery,那麼PyQuery就是你非常絕佳的選擇,PyQuery 是 Python 仿照 jQuery 的嚴格實現。語法與 jQuery 幾乎完全相同.
  • pyspider
        - github
        - doc
        - pyspider中文網
        - 一個國人編寫的強大的網路爬蟲系統並帶有強大的WebUI。採用Python語言編寫,分散式架構,支援多種資料庫後端,強大的WebUI支援指令碼編輯器,任務監視器,專案管理器以及結果檢視器。
  • scrapy
        - github
        - doc
        - Scrapy是一個為了爬取網站資料,提取結構性資料而編寫的應用框架。 可以應用在包括資料探勘,資訊處理或儲存歷史資料等一系列的程式中。
  • re
        - python內建
        - 指南
        - 正則表示式本身是一種小型的、高度專業化的程式語言,而在python中,通過內嵌整合re模組,程式設計師們可以直接呼叫來實現正則匹配。正則表示式模式被編譯成一系列的位元組碼,然後由用C編寫的匹配引擎執行。
  • spyder
        - github
        - doc
        - 漢化
        - Spyder, the Scientific Python Development Environment,
  • ipython
        - github
        - ipython是一個python的互動式shell,比預設的python shell好用得多,支援變數自動補全,自動縮排,支援bash shell命令,內建了許多很有用的功能和函式。它提供了一個強大的python互動式shell和供Jupyter notebooks使用的一個Jupyter核心(IPython notebook)
  • jupter notebook
        - github
        - doc

外部工具

  • chrome
        - chrome開發者工具小技巧
        * 史上最全的Chrome使用技巧集錦
  • fiddler
        - project
        - download-unofficial
        - download-official
        - articles
        - Fiddler是最強大最好用的Web除錯工具之一,它能記錄所有客戶端和伺服器的http和https請求,允許你監視,設定斷點,甚至修改輸入輸出資料,使用Fiddler無論對開發還是測試來說,都有很大的幫助。Fiddler4基於4.0的.NET。
  • wireshark
        - download
        - articles
        - Wireshark(前稱Ethereal)是一個網路封包分析軟體。網路封包分析軟體的功能是擷取網路封包,並儘可能顯示出最為詳細的網路封包資料。Wireshark使用WinPCAP作為介面,直接與網絡卡進行資料報文交換。

關於爬蟲技術