前言:
今天爲大家帶來的內容是詳細實例:用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獲取節點字符串
2)正則表達式寫法1,過濾回車、製表符和p標籤
3)正則表達式寫法2,過濾回車、製表符和p標籤
3、完整代碼
index.py
runscrapy.py
運行如下:
總共1988個文件,下載完成。
以上就是本文的全部內容,希望對大家的學習有所幫助。
python程序員交流羣:877562786(羣裏含大量學習資料,面試寶典等)