您的位置:首頁>正文

Python學爬蟲之道

學爬蟲之道

近來在閱讀 《羽量級 Django》,雖然還沒有讀完, 但我已經收益頗多。 我不得不稱讚 Django 框架的開發人員, 他們把 Web 開發降低門檻。

Django 讓我從對 Web 開發是一無所知到現在可以編寫小型 web 應用, 這很舒服。

Django 已經算是入門, 所以自己把學習目標轉到爬蟲。 自己接下來會利用三個月的時間來專攻 Python 爬蟲。 這幾天, 我使用“主題閱讀方法”閱讀 Python 爬蟲入門的文檔。 制定 Python 爬蟲的學習路線。

第一階段:夯實

入門要就是在打基礎, 所以要從最基礎的庫學起。 下面是幾個庫是入門最經典的庫

1)urllib

它屬於 Python 標準庫。 該庫的作用是請求網頁並下載資料。 在學習該庫之前, 最好把 HTTP 協議瞭解下。 這會大大提高後面的學習效率。

先學會如何使用 urllib 請求到資料, 再學習一些高級用法。 例如:

設置 Headers: 某些網站反感爬蟲的到訪, 於是對爬蟲一律拒絕請求。 設置 Headers 可以把請求偽裝成流覽器訪問網站。

Proxy 的設置: 某些網站做了反倒鏈的設置,

會將高頻繁訪問的 IP 位址封掉。 所以我們需要用到代理池。

錯誤解析:根據 URLError 與 HTTPError 返回的錯誤碼進行解析。

Cookie 的使用:可以類比網站登錄, 需要結合 cookielib 一起使用。

2)re

re 是規則運算式庫。 同時也是 Python 標準庫之一。 它的作用是匹配我們需要爬取的內容。 所以我們需要掌握規則運算式常用符號以及常用方法的用法。

3)BeautifulSoup

BeautifulSoup 是解析網頁的一款神器。 它可以從 HTML 或者 XML 檔中提取資料。 配合 urllib 可以編寫出各種小巧精幹的爬蟲腳本。

第二階段:進階

當把基礎打牢固之後, 我們需要更進一步學習。 使用更加完善的庫來提高爬取效率

1) 使用多執行緒

使用多執行緒抓取資料, 提高爬取資料效率。

2)學習 Requests

Requests 作為 urlilb 的替代品。 它是更加人性化、更加成熟的協力廠商庫。

使用 Requests 來處理各種類型的請求, 重複抓取問題、cookies 跟隨問題、多執行緒多進程、多節點抓取、抓取調度、資源壓縮等一系列問題。

3)學習 Xpath

Xpath 也算是一款神器。 它是一款高效的、表達清晰簡單的分析語言。 掌握它以後介意棄用規則運算式了。 一般是使用流覽器的開發者工具 加 lxml 庫。

4)學習 Selenium

使用 Selenium, 模擬流覽器提交類似用戶的操作, 處理js動態產生的網頁。 因為一些網站的資料是動態載入的。 類似這樣的網站, 當你使用滑鼠往下滾動時, 會自動載入新的網站。

第三階段:突破

1)學習 Scrapy

Scrapy 是一個功能非常強大的分散式爬蟲框架。 我們學會它, 就可以不用重複造輪子。

2)資料存儲

如果爬取的資料條數較多, 我們可以考慮將其存儲到資料庫中。

因此, 我們需要學會 MySql

MongoDB、SqlLite的用法。 更加深入的, 可以學習資料庫的查詢優化。

第四階段:為我所用

當爬蟲完成工作, 我們已經拿到資料。 我們可以利用這些資料做資料分析、資料視覺化、做創業專案原始啟動資料等。

我們可以學習 NumPy、Pandas、 Matplotlib 這三個庫。

NumPy :它是高性能科學計算和資料分析的基礎包。

Pandas : 基於 NumPy 的一種工具, 該工具是為了解決資料分析任務而創建的。 它可以算得上作弊工具。

Matplotlib:Python中最著名的繪圖系統Python中最著名的繪圖系統。 它可以製作出散點圖, 折線圖, 橫條圖, 長條圖, 餅狀圖, 箱形圖散點圖, 折線圖, 橫條圖, 長條圖, 餅狀圖, 箱形圖等。

同類文章
Next Article
喜欢就按个赞吧!!!
点击关闭提示