Python3采集豆瓣用戶的書籍評論信息
阿新 • • 發佈:2019-01-25
div port 評分 操作 bsp con 對象 rom utf
如果想要對豆瓣某用戶的評論數據進行情感分析,那麽我們首先要將此用戶的評論信息進行數據采集。
這裏我將使用Python3對豆瓣某用戶的評論數據進行采集,將結果數據儲存到xml文件中,便於以後情感分析使用。
書評數據采集源代碼:(以單用戶為單位)
1 import requests 2 from bs4 import BeautifulSoup 3 import xml.dom.minidom # 在內存中創建一個空的文檔 4 doc = xml.dom.minidom.Document() 5 6 target_url =‘‘ #此處填寫想要采集的某用戶的評論網址 7 # 創建一個根節點對象8 root = doc.createElement(‘People‘) 9 # 將根節點添加到文檔對象中 10 doc.appendChild(root) 11 12 #創建節點存儲所有評論數據 13 nodeComment = doc.createElement(‘Commentlist‘) 14 15 #設置翻頁操作,有一些用戶書評較多,無法通過單頁的數據完成全部的內容采集 16 for n in range(5): 17 target_url = target_url + ‘?start=‘ + str(n * 10) #每一頁會顯示10個書評信息,因此此處是以10為單位進行增長的18 #解析網頁 19 info = requests.get(target_url) 20 soup = BeautifulSoup(info.text, ‘lxml‘) 21 #定位書評內容所在標簽位置 22 book_comment_total = soup.find_all(‘div‘, attrs={‘class‘: ‘main review-item‘}) 23 #定位存儲書籍評分的位置 24 book_grade_total = soup.find_all(‘header‘, attrs={‘class‘, ‘main-hd‘}) 25 for m ,n in zip(book_comment_total ,book_grade_total):#以一本書為單位進行數據的存儲 26 book_url = m.a[‘href‘] 27 book_grade = n.span[‘title‘] 28 if book_url.startswith(‘https://book‘): 29 i=1 30 r_book_name = m.img[‘title‘]#書籍名稱 31 32 book_comment_info = m.find(‘div‘, attrs={‘class‘: ‘short-content‘}) 33 book_comment_info = book_comment_info.text.lstrip().rstrip() 34 book_comment_info = book_comment_info[:-4] # 去掉字符串’(展開) #書籍的評論信息 35 36 # 一個用戶設置一對<comment>標簽 37 comment =doc.createElement(‘comment‘) 38 #設置存儲書籍名稱的標簽節點 39 bName = doc.createElement(‘bookName‘) 40 bName_text = doc.createTextNode(r_book_name) 41 bName.appendChild(bName_text) 42 # 設置存儲書籍鏈接的標簽節點 43 bUrl=doc.createElement(‘bookUrl‘) 44 bUrl_text = doc.createTextNode(book_url) 45 bUrl.appendChild(bUrl_text) 46 # 設置存儲書籍評分的標簽節點 47 bGrade = doc.createElement(‘bookGrade‘) 48 bGrade_text = doc.createTextNode(book_grade) 49 bGrade.appendChild(bGrade_text) 50 # 設置存儲書籍評論內容的標簽節點 51 bComment = doc.createElement(‘bookComment‘) 52 bComment_text = doc.createTextNode(book_comment_info) 53 bComment.appendChild(bComment_text) 54 #將這些節點存儲到父節點中 55 comment.appendChild(bName) 56 comment.appendChild(bUrl) 57 comment.appendChild(bGrade) 58 comment.appendChild(bComment) 59 60 nodeComment.appendChild(comment) 61 62 #將評論存儲書評的節點插入到根節點下 63 root.appendChild(nodeComment) 64 65 #建立一個新的xml文件,並將存儲的內容插入到文件中 66 fp = open(‘hahahah.xml‘, ‘w‘,encoding=‘utf-8‘) 67 fp.write(doc.toprettyxml(indent=" "))
采集結果顯示:
原創內容,轉載請在文章首頁附加原文鏈接!
Python3采集豆瓣用戶的書籍評論信息