?點擊關注?異步圖書,置頂公眾號
每天與你分享 IT好書 技術干貨 職場知識
重要提示1:本文所列程序均基于Python3.6,低于Python3.6的Python版本可能無法運行.
重要提示2:因所抓取的網站可能隨時更改展示內容,因此程序也需及時跟進.
重要提示3:本程序僅供學習,不能拿去做壞事.?
起步
1.安裝Python 3.6;
2.安裝以下庫:
?
主要思路
整個程序,按照下面的步驟:
1.獲取要爬取頁面的URL地址(可以是分頁地址,可以在程序里面模擬分頁);
2.通過requests(一個封裝了urllib3的網絡庫,簡化了很多網絡請求的東西)下載上面URL地址的內容到內存(以前的方式是保存臨時文件);
3.用BeautifulSoup(一個解析HTML的庫)來讀取第二步中保存在內存中的內容,并解析出我們要的主要內容部分;
4.保存到數據庫或展示(特別說明:本示例程序不包含數據庫部分),程序最終會輸出多條json數據(已經包含了來源網站(自己定義的),創建時間等)
上述部分體現在代碼中,就是如下:
首先在Main.py中,定義:
?用來格式化不得姐獲取到的數據,下面還要定義一個Qsyk來處理來自糗事百科的數據:
?
代碼中還有一個Kanqu.com的抓取處理,這里就不羅列了,這幾個唯一的區別就是:調用common.formatContent時,傳遞的第二個參數不一樣,第二個參數為要抓取的內容(HTML)的class.
CommonGrab中依賴了UserUtils.py中的代碼.
下面是CommonGrab的定義,在CommonGrab中主要做了兩件事:
- 抓取網頁內容,保存到內存;
- 解析HTML內容(使用BeautifulSoup)
- 將數據新增到數據庫中.(不新增數據庫到數據庫中.)
代碼如下:
?
之后就是把上述的幾部分組合起來.
運行
運行部分的代碼如下,主要就是調用了上述幾部分的代碼:
?
源碼下載
CSDN:
https://download.csdn.net/download/dcxy0/9835268
Coding.net:
https://coding.net/u/pruidong/p/Python3GetQsbkBdj/git
文件:
main.py: 運行
UserUtils.py:工具?
本文來源于異步社區,作者:dcxy,作品《Python3抓取糗百、不得姐》,未經授權,禁止轉載。
?
推薦閱讀
2018年5月新書書單(文末福利)
2018年4月新書書單
異步圖書最全Python書單
一份程序員必備的算法書單
第一本Python神經網絡編程圖書
?
?長按二維碼,可以關注我們喲
每天與你分享IT好文。
在“異步圖書”后臺回復“關注”,即可免費獲得2000門在線視頻課程;推薦朋友關注根據提示獲取贈書鏈接,免費得異步e讀版圖書一本。趕緊來參加哦!
點擊閱讀原文,查看更多
閱讀原文
?