相信很多人都有書荒的時候,想要找到一本合适的書籍确實不容易,是以這次利用剛學習到的知識爬取豆瓣網的各類書籍,傳送門https://book.douban.com/tag/?view=cloud。
首先是這個程式的結構,html_downloader是html下載下傳器,html_outputer是導出到Excel表,html_parser是解析頁面,make_wordcloud是制作詞雲,spided_main是程式入口,url_manager是URL管理器,有興趣的童鞋可以去慕課網看paython基礎爬蟲課程。

主要實作思路是先請求下載下傳需要的html,解析得到目标URL并存儲到URL管理器中,再從URL管理器中擷取得到URL,發送請求,解析得到需要的資訊内容,導出到Excel表格,再重Excel表中擷取資料進行分析得到詞雲。
html_downloader:
在這裡我使用的是urllib.request進行請求,之前有試過用request進行請求,但是爬取了幾百頁就被封了ip,是以棄用request。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | |
通過分析豆瓣網的結構,可以看到,我們首先傳進去的是總的圖書分類,但是我們需要的是每一個分類裡面的圖書資訊。是以我們需要得到每一個分類的url,即base_url,再通過這個base_url去擷取圖書url,即detail_url。
url_manager:
|
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | |
解析器 html_parser:
43 44 45 46 47 48 49 50 51 52 53 | |
spided_main:
|
html_outputer:
|
導出的Excel表格格式為,一共導出15261條記錄
make_wordcloud:
|
爬過的坑:
當定義的類有構造函數時候,調用時一定要加上括号,如 f = html_downloader.HtmlDownloader().download(),而不是 f= html_downloader.HtmlDownloader.download(),不然就會一直報錯,類似于TypeError: get_all_base_urls() takes 1 positional argument but 2 were given。
生成詞雲的背景圖檔我選用的是
最後的做出由15261本書形成的詞雲
本次爬蟲隻是針對圖書類熱門評論而做出的詞雲,可以看到涵蓋所有分類的書籍裡最熱門評論的有解憂雜貨店,白夜行等,據此我們可以選取比較熱門的圖書進行閱讀,也可以根據此結果再做進一步的分析,擷取熱門書籍中的評論進行分析人們對于某本書的評價關鍵詞,進而進一步的了解這本圖書所描述的内容。