1. 程式人生 > >教你用Python訪問一零二四網站,拒絕伸手黨

教你用Python訪問一零二四網站,拒絕伸手黨

教你用Python訪問一零二四網站,拒絕伸手黨

 

教你用Python訪問一零二四網站,拒絕伸手黨

 


學習Python中有不明白推薦加入交流裙
                                                               號:735934841
                                                                                         群裡有志同道合的小夥伴,互幫互助,


                                                                                                                                                      群裡有免費的視訊學習教程和PDF!

教你用Python訪問一零二四網站,拒絕伸手黨

 

教你用Python訪問一零二四網站,拒絕伸手黨

 

我感覺這個蟲子全網***最方便***,最牛逼,最便捷,***最能解決實際問題***的蟲子!活學活用,真正的讓程式碼方便我的生活,這才是我編寫程式索要達到的目的。

教你用Python訪問一零二四網站,拒絕伸手黨

 

教你用Python訪問一零二四網站,拒絕伸手黨

 

我們希望變成的樣子

論壇的帖子按照時間釋出順序排列,這樣看每天的新內容就很省事兒。

如果我們要寫一個爬蟲來解決的話,大致結構應該如下:

教你用Python訪問一零二四網站,拒絕伸手黨

 

教你用Python訪問一零二四網站,拒絕伸手黨

 

上面的結構很簡單,那麼簡單的流程就是:我們先配置好本地的config.json檔案,然後啟動程式,爬蟲會自動根據配置好的資訊,然後抓取各個板塊前幾頁的內容,根據帖子發帖時間,篩選爬出出來資訊,隨後,將獲取到的資訊按照時間排序,最後輸出成html格式的檔案,使用本地的網頁瀏覽器開啟。瀏覽器裡面可以看到帖子的id,帖子的標題以及帖子的釋出時間。通過點選帖子的標題,可以跳轉到社群的帖子。這裡還是要推薦下小編的Python學習裙:【七 三 五,九 三 四,八 四 一】不管你是小白還是大牛,小編我都歡迎,不定期分享乾貨,包括小編自己整理的一份2018最新的Python資料和0基礎入門教程,歡迎初學和進階中的小夥伴。在不忙的時間我會給大家解惑。

這樣,內容豐富的小草網站,就直接變成了我們本地寫的最簡單的***html***檔案。

我們整理後的網站首頁:

教你用Python訪問一零二四網站,拒絕伸手黨

 

教你用Python訪問一零二四網站,拒絕伸手黨

 

教你用Python訪問一零二四網站,拒絕伸手黨

 

教你用Python訪問一零二四網站,拒絕伸手黨

 

Url_manager

通過一個dict來儲存板塊名稱和對應的板塊URL,提供一些簡答的方法來操作URL。

Html_download

通過使用requests模組來進行網頁的訪問。從而拿到網頁資料,為後面步驟的解析提供基礎。

這裡進行網路請求的時候,由於1024網站做了反爬處理,我添加了不同的HTTP header。目前還算比較好用。表頭資訊在user_agents檔案中。Html_parser通過BeautifulSoup來對html做解析處理。每一個帖子都是有一個唯一id的。帖子都封裝到CaoliuItem中,然後將結果輸出到html_outputer中。這裡是通過html的tag來做的尋找,並不是通過正則表示式。可能有點僵。

Html_outputer

這個是將之前收集到的爬蟲解析結果,整理成html檔案的類。最終結果有一個index頁面,每個版塊還有自己的頁面。他們之間相互連結在一起,點選起來爽爽的,炒雞方便。需要改進的地方 TODO整體結構雖然清晰,但是整體結構還需要優化。要做到像Scrapy那樣強大的蟲子,得一步一步來。目前爬蟲能力比較弱,沒有用到多執行緒爬蟲。下一個版本可以加入多執行緒,這樣既能提升速度,又能提升質量。

parser的解析還是太依賴網站的佈局。若是網站佈局發生改變,parser就得修改。這個問題是所有爬蟲的通病,我還在想辦法把這裡做的更活一些,不要這麼死板。

output的html檔案美觀度不夠。下一版本,想將解析出來的東西,能夠和MongoDB聯動,算是本地儲存一份吧。因為這樣就能夠看到之前的帖子資訊。

教你用Python訪問一零二四網站,拒絕伸手黨