寫在前面的話夜涼如水,蒼穹下,秋葉舞。天橋下川流不息的斑斕車燈,人來人往的十字街角,喧囂與繁華的城。我需要看看小姐姐的圖片,好好感受下這世界的溫柔以待。私信小編007或者01即可獲取數十套PDF或者零基礎入門資料一套哦!一.思路分析按照爬蟲的基本規律:1.找到目標2.抓取目標3.處理目標內容,獲取有用的信息行動1.我們的目標是: http://gifcc.com/forum.php 這個網站呢,是一個論壇式網站,裡面分瞭幾大類,反正試試各種動圖。我們的目標呢,就是找到這(收)些(藏)動(到)圖(自)的(己)地(電)址(腦).2.看看各個模塊的網址,有什麼規律對,沒錯,如果以遊客的身份進行訪問,那麼各個模塊的網址就是這樣的形式:http://gifcc.com/forum-XX-1.html開工動手1.獲取入口頁面內容即根據傳入的URL,獲取整個頁面的源碼這裡我們使用瞭webdriver以及PhantomJS這些模塊,為什麼呢?因為網頁是動態加載的,這樣可以抓取的數據全一點。2.獲取頁碼數這裡的頁碼處理用到瞭一個模板pq,采用PyQuery的方式查找我們需要的元素,感覺更好處理一點,挺方便的同時這裡的處理稍微有點意思,如果觀察這個頁面的話,會發現,每個模板的頁碼,在上面和下面都有一個,然後我這裡截取的一下,因為我們隻需要一個頁碼數字即可3-6 第三步到第六步一起來說其實就是根據頁碼數,來進行遍歷,獲取到每一頁的內容然後得到每一頁中的所有圖片地址在進行獲取每一頁的內容的時候,需要重新組裝頁面地址。有瞭新的地址,就可以獲取當前頁面的內容,並進行數據處理,得到每一張圖片的地址列表在獲取到圖片列表後,再次解析,獲取每一張圖片的URL將圖片存到本地,以及將數據寫入數據庫到這裡其實大體的內容已經完成瞭,我們能夠將這個論壇的各個模塊的動圖保存在本地,同時,也將數據放入數據庫中.數據庫的篩選在完成瞭將數據放入到數據庫的之後, 我想著可以直接通過調用數據庫,將圖片保存(為什麼有這個想法呢,因為我發現如果直接在主程序中存貯圖片,它跑的太慢瞭,不如將數據都放到數據庫中,之後專門調用數據庫來貯存圖片)但是這裡發現一個問題,數據中的內容挺多的,然後發現瞭好多內容是重復的,因此我們需要對數據庫進行去重關於數據去重的內容,其實我之前的文章已經寫過瞭(寫那篇文章的時候,這個爬蟲已經完成瞭呢~)主要思路是針對某一個元素的數量進行操作,pymongo裡面有一個方法是可以統計指定元素的數量的,如果當前元素隻有一個,就不管,不是一個元素,就刪除核心代碼如下:讀取數據庫中的內容,存儲圖片數據去重之後,再次進行圖片的存儲,就方便多瞭之後圖片刪除瞭也不用重新跑一遍,核心代碼如下:完整代碼01_get_gif_url.py02_delete_repeat_url_in_mongodb.py謝謝閱讀!!!
本文出自快速备案,转载时请注明出处及相应链接。