1. 程式人生 > >Python3采集豆瓣用戶的書籍評論信息

Python3采集豆瓣用戶的書籍評論信息

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采集豆瓣用戶的書籍評論信息