1. 程式人生 > >爬蟲之爬取豆瓣圖書的評論

爬蟲之爬取豆瓣圖書的評論

pen 數據 app bs4 lis 爬取 fix replace sub

from urllib import request
from bs4 import BeautifulSoup as bs

#爬取豆瓣最受關註圖書榜
resp = request.urlopen(https://book.douban.com/chart?subcat=I)
html_data = resp.read().decode(utf-8)

#轉化為BeautifulSoup對象
soup = bs(html_data,html.parser)

#搜索最受關註的圖書列表
topchart_book =soup.find_all(ul,class_=chart-dashed-list
) #搜索列表中所有圖書 topchart_book_list = topchart_book[0].find_all(li,class_=media clearfix) #新建數組用於存放後續的數據 topchart_list = [] #遍歷圖書館列表,從中過濾出我們所需的信息 for item in topchart_book_list: #新建字典用於存放我們的圖書信息,之後可用class來存儲 topchart_dict = {} #搜索到具體信息的位置 book_item = item.find(a,class_=fleft)
#得到圖書ID topchart_dict[id] = book_item[href].split(/)[4] #得到圖書名稱 topchart_dict[name] = book_item.getText().replace(\t,‘‘).replace(\n,‘‘).replace( ,‘‘) #圖書名字 #將圖書信息加入到數組中 topchart_list.append(topchart_dict) # print(topchart_list) #拼接出圖書對應的詳情頁 requrl = https://book.douban.com/subject/
+topchart_list[0][id]+/comments/hot+?+p-1 #爬取熱門第一頁中的評論信息 resp = request.urlopen(requrl) html_data = resp.read().decode(utf-8) soup = bs(html_data,html.parser) #搜索到評論所在div comment_div_lits = soup.find_all(div,class_=comment) #新建數組用於存放評論信息 eachCommentList = [] for item in comment_div_lits: if item.find_all(p)[0].string is not None: eachCommentList.append(item.find_all(p)[0].string) print(eachCommentList)

爬蟲之爬取豆瓣圖書的評論