Python爬取豆瓣圖書信息并寫入Excel

豆瓣算是一個文藝者的棲息地了坛芽,也是程序員們的蟲子喜歡光顧的地方留储。對豆瓣的書籍和電影比較感興趣,下面是一個小爬蟲抓取圖書的然后自動寫入Excel咙轩,后續(xù)可能會加大光顧豆瓣的力度获讳。_

這個爬蟲有參考網(wǎng)絡上的資料,也有參考如下鏈接的文檔活喊。

Request官方文檔
Openpyxl官方文檔
BeautifulSoup4官方文檔
XML 系列教程

網(wǎng)頁的源代碼情況.png
# -*- coding=utf-8 -*-
import requests
from bs4 import BeautifulSoup
#import os
from openpyxl import Workbook
import time

num0 = 1  # 用來計數(shù)丐膝,計算爬取的書一共有多少本
num1 = 1
num2 = 1 #設(shè)置三個計數(shù)的變量是為了將書籍、類別和作者對應起來

start_time = time.time()  # 計算爬蟲爬取過程時間

# 第一頁網(wǎng)頁網(wǎng)址https://read.douban.com/columns/category/all?sort=hot&start=0
# 第二頁網(wǎng)頁網(wǎng)址https://read.douban.com/columns/category/all?sort=hot&start=10
# 第三頁網(wǎng)頁網(wǎng)址https://read.douban.com/columns/category/all?sort=hot&start=20
# ......發(fā)現(xiàn)規(guī)律了嗎
url = 'https://read.douban.com/columns/category/all?sort=hot&start='

wb = Workbook()
ws = wb.active
ws.title = "豆瓣閱讀全部專欄"
ws.cell(row=1, column=1).value = '全部專欄'
ws.cell(row=1, column=2).value = '作者'
ws.cell(row=1, column=3).value = '類別'

for i in range(0, 1760, 10):  # 這里的  range(初始钾菊,結(jié)束帅矗,間隔)
    # requests庫用來向該網(wǎng)服務器發(fā)送請求,請求打開該網(wǎng)址鏈接煞烫。requests.get().content表示什么意思浑此?
    html = requests.get('https://read.douban.com/columns/category/all?sort=hot&start=%d' % i).content
    # BeautifulSoup庫解析獲得的網(wǎng)頁,第二個參數(shù)一定記住要寫上‘lxml’滞详,記住就行
    bsObj = BeautifulSoup(html, 'lxml')
    print('==============' + '第%d頁' % (i / 10 + 1) + '==============')
    # 分析網(wǎng)頁發(fā)現(xiàn)凛俱,每頁有10本書,而<h4>標簽正好只有10個料饥。
    
    # 下面的for循環(huán)是爬取書籍名稱
    h4_node_list = bsObj.find_all('h4')  # 這里返回的是h4標簽的list列表蒲犬。
    #對于為什么是find_all('h4'),以及下面的類似。都是查看頁面源代碼岸啡,然后找規(guī)律原叮,參考BS4文檔。
    for h4_node in h4_node_list:
    # 因為是列表巡蘸,要用list[0]取出來<a>標簽奋隶,在用<a>的string將文本取出來        
        title = h4_node.contents[0].string
        title = '<<' + title + '>>'
        #title_all = title_all.append(title)        
        print('第%d本書' % num0, title)
        num0 = num0 + 1
        ws.cell(row=num0, column=1).value = title
    
    # 下面的for循環(huán)是爬取對應書籍的類別
    category_node_list = bsObj.find_all("div","category")   
    for category_node in category_node_list:
        category = category_node.contents[1].string
        print('第%d本書的類別' % num1, category)
        num1 = num1 + 1
        ws.cell(row=num1, column=3).value = category

    # 下面的for循環(huán)是爬取對應書籍的作者
    author_node_list = bsObj.find_all("div","author")
    #category_node_list = bsObj.find_all("div","category")
    for author_node in author_node_list:
        author = author_node.contents[1].string
        print('第%d本書的作者' % num2, author)
        num2 = num2 + 1
        ws.cell(row=num2, column=2).value = author
       
    wb.save('豆瓣閱讀全部專欄' + '.xlsx')  #將書籍寫入Excel表格
        
    time.sleep(2)
    #設(shè)置抓數(shù)據(jù)停頓時間為1秒,防止過于頻繁訪問該網(wǎng)站悦荒,被封
 
#下面用來統(tǒng)計爬蟲用時及抓取書籍總數(shù)达布。
end_time = time.time()
duration_time = end_time - start_time
print('運行時間共:%.2f' %duration_time + '秒')
print('共抓到%d本書名' % (num1-1))

代碼如上,請大家多多指教逾冬。
另外黍聂,比較喜歡廖雪峰的Python教程,以及書籍《Python Cookbook》身腻、《Learn Python the Hard Way》和爬蟲書《Web Scraping with Python》产还,這本書中文名叫Python網(wǎng)絡數(shù)據(jù)采集。其他的網(wǎng)路上的Python視頻也很不錯嘀趟。有一個體會就是學一種技能的效果不在于你看多少本有關(guān)的書籍脐区,而是一本書你是否完成看完了,吃透了多少她按。Python的資料就是太多了牛隅。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末炕柔,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子媒佣,更是在濱河造成了極大的恐慌匕累,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件默伍,死亡現(xiàn)場離奇詭異欢嘿,居然都是意外死亡,警方通過查閱死者的電腦和手機也糊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評論 3 385
  • 文/潘曉璐 我一進店門炼蹦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人狸剃,你說我怎么就攤上這事掐隐。” “怎么了钞馁?”我有些...
    開封第一講書人閱讀 158,369評論 0 348
  • 文/不壞的土叔 我叫張陵虑省,是天一觀的道長。 經(jīng)常有香客問我指攒,道長慷妙,這世上最難降的妖魔是什么僻焚? 我笑而不...
    開封第一講書人閱讀 56,799評論 1 285
  • 正文 為了忘掉前任允悦,我火速辦了婚禮,結(jié)果婚禮上虑啤,老公的妹妹穿的比我還像新娘隙弛。我一直安慰自己,他們只是感情好狞山,可當我...
    茶點故事閱讀 65,910評論 6 386
  • 文/花漫 我一把揭開白布全闷。 她就那樣靜靜地躺著,像睡著了一般萍启。 火紅的嫁衣襯著肌膚如雪总珠。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,096評論 1 291
  • 那天勘纯,我揣著相機與錄音局服,去河邊找鬼。 笑死驳遵,一個胖子當著我的面吹牛淫奔,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播堤结,決...
    沈念sama閱讀 39,159評論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼唆迁,長吁一口氣:“原來是場噩夢啊……” “哼鸭丛!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起唐责,我...
    開封第一講書人閱讀 37,917評論 0 268
  • 序言:老撾萬榮一對情侶失蹤鳞溉,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后妒蔚,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體穿挨,經(jīng)...
    沈念sama閱讀 44,360評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,673評論 2 327
  • 正文 我和宋清朗相戀三年肴盏,在試婚紗的時候發(fā)現(xiàn)自己被綠了科盛。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,814評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡菜皂,死狀恐怖贞绵,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情恍飘,我是刑警寧澤榨崩,帶...
    沈念sama閱讀 34,509評論 4 334
  • 正文 年R本政府宣布,位于F島的核電站章母,受9級特大地震影響母蛛,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜乳怎,卻給世界環(huán)境...
    茶點故事閱讀 40,156評論 3 317
  • 文/蒙蒙 一彩郊、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蚪缀,春花似錦秫逝、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至金蜀,卻和暖如春刷后,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背渊抄。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評論 1 267
  • 我被黑心中介騙來泰國打工开仰, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留乃沙,地道東北人滑潘。 一個月前我還...
    沈念sama閱讀 46,641評論 2 362
  • 正文 我出身青樓夕冲,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子抱慌,可洞房花燭夜當晚...
    茶點故事閱讀 43,728評論 2 351

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,872評論 25 707
  • 爬蟲文章 in 簡書程序員專題: like:128-Python 爬取落網(wǎng)音樂 like:127-【圖文詳解】py...
    喜歡吃栗子閱讀 21,745評論 4 412
  • 今天是清明節(jié)逊桦,早上帶寶寶出去玩時,路過樓下的休閑亭抑进,我不禁又看了一眼那靠路邊的椅子强经,頓時思緒萬千涌上心頭,是啊寺渗,十...
    淘吧閱讀 601評論 0 0
  • 實體化3屬性:width height background boeder文字3屬性:font-family fo...
    麥殼兒UIandFE2閱讀 437評論 1 1
  • 麗霞匿情,我不想隱瞞我現(xiàn)在的情況,你也感覺到了信殊,我也不想一直這么讓兩個人都難受炬称,我嘗試過,努力過涡拘,但是我的心的確不在這...
    小伙子不孤單閱讀 120評論 0 0