爬虫beautifulsoup爬取豆瓣读书数据
生活随笔
收集整理的這篇文章主要介紹了
爬虫beautifulsoup爬取豆瓣读书数据
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
爬蟲beautifulsoup爬取豆瓣讀書數據:主要是爬取收集書的名字、類別、簡介,用于接下來的聚類學習。
豆瓣鏈接:https://book.douban.com/tag/?view=type&icn=index-sorttags-all
代碼如下:
import ssl import bs4 import re import requests import csv import codecs #字符編碼codecs(讀取文件) import timefrom urllib import request, errorcontext = ssl._create_unverified_context() #防止出現ssl網站證書警告class DouBanSpider:def __init__(self):self.userAgent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36"self.headers = {"User-Agent": self.userAgent}# 拿到豆瓣圖書的分類標簽def getBookCategroies(self):try:url = "https://book.douban.com/tag/?view=type&icn=index-sorttags-all"response = request.urlopen(url, context=context)content = response.read().decode("utf-8") #返回的是htmlreturn contentexcept error.HTTPError as identifier:print("errorCode: " + identifier.code + "errrorReason: " + identifier.reason)return None# 找到每個標簽的內容def getCategroiesContent(self):content = self.getBookCategroies()if not content:print("頁面抓取失敗...")return Nonesoup = bs4.BeautifulSoup(content, "lxml")categroyMatch = re.compile(r"^/tag/*") #^ 表示正則匹配以/tag/為開頭的,*表示正則匹配前面的子表達式零次或多次categroies = []for categroy in soup.find_all("a", {"href": categroyMatch}):if categroy: #格式是這樣的: <a href="/tag/小說">小說</a> <a href="/tag/外國文學">外國文學</a>categroies.append(categroy.string)# print(categroies) #格式是這樣的: ['小說', '外國文學', '文學',……]return categroies# 拿到每個標簽的鏈接def getCategroyLink(self):categroies = self.getCategroiesContent()categroyLinks = []for item in categroies:link = "https://book.douban.com/tag/" + str(item)categroyLinks.append(link)return categroyLinks#獲取'title', 'tag', 'info', 'comments', 'content'內容,只爬了第一頁def getBookInfo(self, categroyLinks):self.setCsvTitle()categroies = categroyLinkstry:for link in categroies:print("正在爬取:" + link)bookList = []response = requests.get(link)soup = bs4.BeautifulSoup(response.text, 'lxml')bookCategroy = soup.h1.stringfor book in soup.find_all("li", {"class": "subject-item"}):bookSoup = bs4.BeautifulSoup(str(book), "lxml")bookTitle = bookSoup.h2.a["title"]print(bookTitle)bookAuthor = bookSoup.find("div", {"class": "pub"})print(bookAuthor)bookComment = bookSoup.find("span", {"class": "pl"})print(bookComment)bookContent = bookSoup.li.pprint(bookContent)if bookTitle and bookAuthor and bookComment and bookContent:bookList.append([bookTitle.strip(),bookCategroy.strip() , bookAuthor.string.strip(),bookComment.string.strip(), bookContent.string.strip()])self.saveBookInfo(bookList)time.sleep(3)print("爬取結束....")except error.HTTPError as identifier:print("errorCode: " + identifier.code + "errrorReason: " + identifier.reason)return Nonedef setCsvTitle(self):csvFile = codecs.open("data/data1.csv", 'a', 'utf_8_sig')try:writer = csv.writer(csvFile)writer.writerow(['title', 'tag', 'info', 'comments', 'content'])finally:csvFile.close()def saveBookInfo(self, bookList):bookList = bookListcsvFile = codecs.open("data/data1.csv", 'a', 'utf_8_sig')try:writer = csv.writer(csvFile)for book in bookList:writer.writerow(book)finally:csvFile.close()def start(self):categroyLink = self.getCategroyLink()self.getBookInfo(categroyLink)douBanSpider = DouBanSpider() douBanSpider.start()結果:
title,tag,info,comments,content 活著,豆瓣圖書標簽: 小說,余華 / 作家出版社 / 2012-8-1 / 20.00元,(233267人評價),《活著(新版)》講述了農村人福貴悲慘的人生遭遇。福貴本是個闊少爺,可他嗜賭如命,終于賭光了家業,一貧如洗。他的父親被他活活氣死,母親則在窮困中患了重病,福貴... 解憂雜貨店,豆瓣圖書標簽: 小說,[日] 東野圭吾 / 李盈春 / 南海出版公司 / 2014-5 / 39.50元,(435177人評價),"現代人內心流失的東西,這家雜貨店能幫你找回—— 僻靜的街道旁有一家雜貨店,只要寫下煩惱投進卷簾門的投信口,第二天就會在店后的牛奶箱里得到回答。 因男友身患絕..." 追風箏的人,豆瓣圖書標簽: 小說,[美] 卡勒德·胡賽尼 / 李繼宏 / 上海人民出版社 / 2006-5 / 29.00元,(447477人評價),12歲的阿富汗富家少爺阿米爾與仆人哈桑情同手足。然而,在一場風箏比賽后,發生了一件悲慘不堪的事,阿米爾為自己的懦弱感到自責和痛苦,逼走了哈桑,不久,自己也跟... 白夜行,豆瓣圖書標簽: 小說,[日] 東野圭吾 / 劉姿君 / 南海出版公司 / 2008-9 / 29.80元,(322044人評價),“只希望能手牽手在太陽下散步”,這個象征故事內核的絕望念想,有如一個美麗的幌子,隨著無數凌亂、壓抑、悲涼的故事片段像紀錄片一樣一一還原:沒有癡癡相思,沒有海... 三體,豆瓣圖書標簽: 小說,劉慈欣 / 重慶出版社 / 2008-1 / 23.00,(265880人評價),文化大革命如火如荼進行的同時。軍方探尋外星文明的絕秘計劃“紅岸工程”取得了突破性進展。但在按下發射鍵的那一刻,歷經劫難的葉文潔沒有意識到,她徹底改變了人類的... 月亮與六便士,豆瓣圖書標簽: 小說,[英] 威廉·薩默塞特·毛姆 / 徐淳剛 / 浙江文藝出版社 / 2017-1-1 / 39.80元,(61993人評價),"“滿地都是六便士,他卻抬頭看見了月亮。” 銀行家查爾斯,人到中年,事業有成,為了追求內心隱秘的繪畫夢想,突然拋妻別子,棄家出走。他深知:人的每一種身份都是一..." 嫌疑人X的獻身,豆瓣圖書標簽: 小說,[日] 東野圭吾 / 劉子倩 / 南海出版公司 / 2008-9 / 28.00,(264405人評價),"百年一遇的數學天才石神,每天唯一的樂趣,便是去固定的便當店買午餐,只為看一眼在便當店做事的鄰居靖子。 靖子與女兒相依為命,失手殺了前來糾纏的前夫。石神提出由..." 房思琪的初戀樂園,豆瓣圖書標簽: 小說,林奕含 / 北京聯合出版公司 / 2018-1 / 45.00元,(78425人評價),"令人心碎卻無能為力的真實故事。 向死而生的文學絕唱 打動萬千讀者的年度華語小說。 李銀河 戴錦華 駱以軍 張悅然 馮唐 詹宏志 蔣方舟 史航 等多位學者作..." 圍城,豆瓣圖書標簽: 小說,錢鍾書 / 人民文學出版社 / 1991-2 / 19.00,(268227人評價),《圍城》是錢鐘書所著的長篇小說。第一版于1947年由上海晨光出版公司出版。1949年之后,由于政治等方面的原因,本書長期無法在中國大陸和臺灣重印,僅在香港出... 百年孤獨,豆瓣圖書標簽: 小說,[哥倫比亞] 加西亞·馬爾克斯 / 范曄 / 南海出版公司 / 2011-6 / 39.50元,(196987人評價),《百年孤獨》是魔幻現實主義文學的代表作,描寫了布恩迪亞家族七代人的傳奇故事,以及加勒比海沿岸小鎮馬孔多的百年興衰,反映了拉丁美洲一個世紀以來風云變幻的歷史。... 平凡的世界(全三部),豆瓣圖書標簽: 小說,路遙 / 人民文學出版社 / 2005-1 / 64.00元,(163371人評價),《平凡的世界》是一部現實主義小說,也是一部小說形式的家族史。作者濃縮了中國西北農村的歷史變遷過程,在小說中全景式地表現了中國當代城鄉的社會生活。在近十年的廣... 紅樓夢,豆瓣圖書標簽: 小說,[清] 曹雪芹 著、高鶚 續 / 人民文學出版社 / 1996-12 / 59.70元,(187080人評價),《紅樓夢》是一部百科全書式的長篇小說。以寶黛愛情悲劇為主線,以四大家族的榮辱興衰為背景,描繪出18世紀中國封建社會的方方面面,以及封建專制下新興資本主義民主... 許三觀賣血記,豆瓣圖書標簽: 小說,余華 / 南海出版公司 / 1998-9 / 16.80元,(115999人評價),《許三觀賣血記》是余華1995年創作的一部長篇小說,它以博大的溫情描繪了磨難中的人生,以激烈的故事形式表達了人在面對厄運時求生的欲望。小說講述了許三觀靠著賣... 霍亂時期的愛情,豆瓣圖書標簽: 小說,[哥倫比亞] 加西亞·馬爾克斯 / 楊玲 / 南海出版公司 / 2012-9-1 / 39.50元,(115399人評價),"★馬爾克斯唯一正式授權,首次完整翻譯這種代碼的風格值得我這種菜鳥學習。。。
參考:Python自然語言處理實戰
總結
以上是生活随笔為你收集整理的爬虫beautifulsoup爬取豆瓣读书数据的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: multisim怎么设置晶体管rbe_m
- 下一篇: FCPX插件:Stupid Raisin