這些美食你吃過嗎!使用Python網路爬蟲獲取菜譜圖文資訊一起學習

湘九發表於2020-09-26

/1 前言/

在放假時 ,經常想嘗試一下自己做飯,下廚房這個網址是個不錯的選擇。

下廚房是必選的網址之一,主要提供各種美食做法以及烹飪技巧。包含種類很多。

今天教大家去爬取下廚房的菜譜 ,儲存在world文件,方便日後製作自己的小菜譜。

 

 

/2 專案目標/

獲取菜譜,並批量把菜 名、 原 料 、下 載 鏈 接 、下載儲存在world文件。

 

/ 3 專案準備/

軟體: PyCharm

需要的庫: requests 、 lxml 、 fake_useragent、 time

網站如下:

點選下一頁時,每增加一頁page自增加1,用{}代替變換的變數,再用for迴圈遍歷這網址,實現多個網址請求。

/4 反爬措施的處理/

主要有兩個點需要注意:

1、直接使用requests庫,在不設定任何header的情況下,網站直接不返回資料

2、同一個ip連續訪問多次,直接封掉ip,起初我的ip就是這樣被封掉的。

為了解決這兩個問題,最後經過研究,使用以下方法,可以有效解決。

1)獲取正常的 http請求頭,並在requests請求時設定這些常規的http請求頭。

2)使用 fake_useragent ,產生隨機的UserAgent進行訪問。

/5 專案實現/

1、定義一個class類繼承object,定義init方法繼承self,主函式main繼承self。匯入需要的庫和網址,程式碼如下所示。

2、隨機產生UserAgent。

3、傳送請求 獲取響應, 頁面回撥,方便下次請求。

4、xpath解析一級頁面資料,獲取二級頁面網址。

5、for遍歷,定義一個變數food_info儲存,獲取到二級頁面對應的菜 名、 原 料 、下 載 鏈 接。

6、儲存在world文件 。

7、呼叫方法,實現功能。

8、專案優化

1)方法一:設定時間延時。

2)方法二:定義一個變數u,for遍歷,表示爬取的是第幾種食物。(更清晰可觀)。

/6 效果展示/

1、點選綠色小三角執行輸入起始頁,終止頁。

 

 

2、執行程式後,結果顯示在控制檯,如下圖所示。

 

 

3、將執行結果儲存在world文件中,如下圖所示。

 

 

4、雙擊檔案,內容如下圖所示。

 

 

 

/7 小結/

1 、本文章基於Python網路爬蟲,獲取下廚房網站菜譜資訊, 在應用中出現的難點和重點,以及如何防止反爬,做出了相對於的解決方案。

2、介紹瞭如何去拼接字串,以及列表如何進行型別的轉換。

3、程式碼很簡單,希望能夠幫到你。

4、歡迎大家積極嘗試,有時候看到別人實現起來很簡單,但是到自己動手實現的時候,總會有各種各樣的問題,切勿眼高手低,勤動手,才可以理解的更加深刻。

5、可以選擇自己喜歡的分類,獲取自己喜歡的菜譜,每個人都是廚師。

此文轉載文,著作權歸作者所有,如有侵權聯絡小編刪除! 如需原始碼或者素材 請

點選這裡下載

相關文章