之前為了工作需要,寫了不少爬蟲小程序,和同事們聊得過程中發現,很多人對爬蟲還是停留在聽說過的階段,基於這個原因,特意寫點適合小白看的,希望大家能對爬蟲有個小認知。
工欲善其事必先利其器,既然要寫爬蟲,那第一步,就是環境準備,先來看看我們需要的基礎環境。
操作系統:Windows 10
Python版本:Python 3.6
代碼編輯運行環境:個人推薦PyCharm社區版。
依賴第三方庫:
requests:一個方便、簡潔、高效且人性化的HTTP請求庫
BeautifulSoup:HTML解析庫
安裝的話,本身步驟並不是很複雜,我們來看看。
1.安裝Python運行環境
從python官網可以進行下載
https://www.python.org/downloads/release/python-365/
安裝的時候注意選中把python3.6添加到path,然後點擊Customize installation
確認pip是選中的
2.安裝pycharm
可以從官網下載pycharm社區版,安裝教程可以百度
https://www.jetbrains.com/pycharm/download/#section=windows
3.安裝第三方依賴庫
這裡給大家介紹兩種安裝方式:
第一種是選用pip安裝:在cmd中運行pip install requests 或者 pip install bs4
另外一種我們可以藉助pycharm安裝,在pycharm中選擇File->settings->Project Interpreter中,點擊右邊的+,然後輸入我們需要安裝的第三方庫
這樣我們基本爬蟲需要的環境就配置好了,那接下來,就開始我們愉快的爬蟲之旅吧。
那開始實戰之前,我們先來分析一下我們的爬蟲需要完成一個什麼樣的流程。
人工抓取頁面數據做法
1:打開我們需要分析的網頁,我們以豆瓣電影top 250 為例:
https://movie.douban.com/top250
2:確認我們需要保存的數據,我們在這將影片名字,評分和一句話評價保存下來,那就是將每條裡面的數據copy並複製下來
3: 因為當前頁面只能展示25條,那我們需要對後續的網頁進行順序讀取,確認我們將250條都讀取出來。
那根據對人工動作的分析,我們可以對我們的程序進行以下分析
1. 我們需要有一個可以爬取頁面請求的動作
2. 我們需要對爬取下來的頁面進行分析
3. 我們需要對頁面請求進行一個循環,將250條數據都爬取下來
那基於這些需求,我們首先需要做的就是對頁面請求進行爬取,那在這裡,給大家介紹一個頁面請求的庫,就是requests。
這裡是它的基本文檔介紹:
https://requests.readthedocs.io/zh_CN/latest/
看它的介紹:Requests 唯一的一個非轉基因的 Python HTTP 庫,人類可以安全享用。 就知道這是一個非常簡單好用的網絡庫了。
我們先來看一下怎麼爬取第一個網頁 (test1.py)
運行一下看看效果
根據打印出來的內容,我們可以看到,第一個網頁已經被我們爬取下來了,那接下來,我們就需要分析一下後續網頁有什麼規律可以讓我們使用
第一頁:https://movie.douban.com/top250
第二頁:https://movie.douban.com/top250?start=25&filter=
第三頁:https://movie.douban.com/top250?start=50&filter=
第四頁:https://movie.douban.com/top250?start=75&filter=
我們可以看出來,從第二頁開始,每一個連接後面都需要一個start的參數,而且是以25遞增的,那我們可以對我們的程序進行以25遞增的獲取頁面(test2.py):
到這裡,我們已經可以將網頁都爬取下來了,那下一步要做的就是對我們需要的內容進行提取了,我們下一次來實現內容提取。
本文所有代碼都可以在github上下載,鏈接地址為:
https://github.com/chrisblue0605/testspider_for_py.git
作 者:Testfan Chris
出 處:微信公眾號:自動化軟件測試平臺
閱讀更多 安然—Testfan 的文章