詳細實例:用python爬蟲爬取幽默笑話網站!(建議收藏)

前言:

今天爲大家帶來的內容是詳細實例:用python爬蟲爬取幽默笑話網站!(建議收藏),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下!

                        爬取網站爲:http://xiaohua.zol.com.cn/youmo/

查看網頁機構,爬取笑話內容時存在如下問題:

1、每頁需要進入“查看更多”鏈接下面網頁進行進一步爬取內容每頁查看更多鏈接內容比較多,多任務進行,這裏採用線程池的方式,可以有效地控制系統中併發線程的數量。避免當系統中包含有大量的併發線程時,導致系統性能下降,甚至導致 Python 解釋器崩潰,引入線程池,花費時間更少,更效率。

  • 創建線程 池threadpool.ThreadPool()
  • 創建需要線程池處理的任務即threadpool.makeRequests(),makeRequests存放的是要開啓多線程的函數,以及函數相關參數和回調函數,其中回調函數可以不寫(默認是無)
  • 將創建的多個任務put到線程池中,threadpool.putRequest()
  • 等到所有任務處理完畢theadpool.pool()

2、查看鏈接笑話頁內容,div元素內部文本分佈比較混亂。有的分佈在<p>鏈接內有的屬於div的文本,可採用正則表達式的方式解決。

注意2種獲取元素節點的方式:

1)lxml獲取節點字符串

12192974-7ebf765f6e443efa
詳細實例:用python爬蟲爬取幽默笑話網站!(建議收藏)

2)正則表達式寫法1,過濾回車、製表符和p標籤

12192974-bcf94a0c93cb793d
詳細實例:用python爬蟲爬取幽默笑話網站!(建議收藏)

3)正則表達式寫法2,過濾回車、製表符和p標籤

12192974-41dacd1f472c4fd6
詳細實例:用python爬蟲爬取幽默笑話網站!(建議收藏)

3、完整代碼

index.py

12192974-98716fe95f4b4864
詳細實例:用python爬蟲爬取幽默笑話網站!(建議收藏)
12192974-cecff22dbf1acf6f
詳細實例:用python爬蟲爬取幽默笑話網站!(建議收藏)
12192974-ef92796fd7ea6fef
詳細實例:用python爬蟲爬取幽默笑話網站!(建議收藏)

runscrapy.py

12192974-3b916ce2bfcdec78
詳細實例:用python爬蟲爬取幽默笑話網站!(建議收藏)

運行如下:

12192974-21de91e551cf8f3e
詳細實例:用python爬蟲爬取幽默笑話網站!(建議收藏)

總共1988個文件,下載完成。

12192974-ee6ff0ab94210cda
詳細實例:用python爬蟲爬取幽默笑話網站!(建議收藏)

以上就是本文的全部內容,希望對大家的學習有所幫助。

python程序員交流羣:877562786(羣裏含大量學習資料,面試寶典等)

發佈了210 篇原創文章 · 獲贊 38 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章