爬蟲對目標網頁爬取的過程可以參考下麵黑色文字部分: 首先訪問初始url,獲取其相應內容對相應內容進行解析,提取感興趣的信息和新的鏈接將上一步提取到的數據存儲,將獲取到的鏈接去重並存儲至倉庫從url倉庫獲得一條未爬取過的url,開始新的迴圈 圖片中由黑色文字組成的迴圈應該很好理解,那麼具體到編程上來說 ...
爬蟲對目標網頁爬取的過程可以參考下麵黑色文字部分:
- 首先訪問初始url,獲取其相應內容對相應內容進行解析,提取感興趣的信息和新的鏈接將上一步提取到的數據存儲,將獲取到的鏈接去重並存儲至倉庫從url倉庫獲得一條未爬取過的url,開始新的迴圈
圖片中由黑色文字組成的迴圈應該很好理解,那麼具體到編程上來說,則必須將上面的流程進行抽象,我們可以編寫幾個元件,每個元件完成一項功能,上圖中的藍底白字就是對這一流程的抽象:
爬蟲調度器將要完成整個迴圈,下麵寫出python下爬蟲調度器的程式:
存儲器、下載器、解析器和url管理器!
首先,還是來看看下麵這張圖,URL管理器到底應該具有哪些功能?
下麵來說說下載器。
下載器的作用就是接受URL管理器傳遞給它的一個url,然後把該網頁的內容下載下來。python自帶有urllib和urllib2等庫(這兩個庫在python3中合併為urllib),它們的作用就是獲取指定的網頁內容。不過,在這裡我們要使用一個更加簡潔好用而且功能更加強大的模塊:Requests(查看文檔)。
Requests並非python自帶模塊,需要安裝。關於其具體使用方法請查看相關文檔,在此不多做介紹。
下載器接受一個url作為參數,返回值為下載到的網頁內容(格式為str)。下麵就是一個簡單的下載器,其中只有一個簡單的函數download():
在requests請求中設置User-Agent的目的是偽裝成瀏覽器,這是一隻優秀的爬蟲應該有的覺悟。
URL管理器和下載器相對簡單!剩下的下次介紹,希望能幫到零基礎小白的你!
進群:125240963 即可獲取數十套PDF!