1. 程式人生 > >python爬蟲——京東評論、jieba分詞、wordcloud詞雲統計

python爬蟲——京東評論、jieba分詞、wordcloud詞雲統計

nbsp cnblogs code utf-8 col type callback 結果 處理

接上一章,抓取京東評論區內容。

url=‘https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98vv399&productId=4560435&score=0&sortType=5&page=0&pageSize=10&isShadowSku=0&fold=1’

重點是productId——產品id、page——頁碼、pageSize:指定每一頁展示多少評論

#coding:utf-8
import requests
import json,time

def get_detail(url): wbdata = requests.get(url).text wbdata = wbdata[25:-2] data = json.loads(wbdata) news = data[comments] for n in news: title = n[content] print title print -*20 for i in range(30): url = https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98vv399&productId=4560435&score=0&sortType=5&page=
+str(i) +&pageSize=10&isShadowSku=0&fold=1 #url = ‘https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98vv399&productId=4560435&score=0&sortType=5&page=0&pageSize=10&isShadowSku=0&fold=1‘ if requests.get(url).status_code == 200: get_detail(url) time.sleep(
10) print i

代碼類似,不詳細說明(get、json、數據處理)。

加入time.sleep(10)防止ip被禁。

結果如下:

技術分享

----------------------------------------------------------

想比較直觀的顯示評論重點,因此加入jieba分詞還有wordcloud詞雲(沒有庫的,通過pip install jieba)

import matplotlib.pyplot as plt
from wordcloud import WordCloud
import jieba,os


text_from_file_with_apath = open(sss.txt).read()
 
wordlist_after_jieba = jieba.cut(text_from_file_with_apath, cut_all = True)
wl_space_split = " ".join(wordlist_after_jieba)
 
my_wordcloud = WordCloud().generate(wl_space_split)
 
plt.imshow(my_wordcloud)
plt.axis("off")
plt.show()

簡陋版詞雲效果。

技術分享

wordcloud 默認使用了DroidSansMono.ttf 字體庫,改一下換成一個支持中文的ttf 字庫, 重新運行一下這十行代碼,就可以了。

wordcloud詞雲默認不支持中文,可能會顯示還多矩形框。

解決辦法——改一下換成一個支持中文的ttf 字庫

Python27\Lib\site-packages\wordcloud.py 中的 ---- DroidSansMono.ttf 替換修改為 simfang.ttf

在線詞雲生成網頁:https://wordart.com/create

python爬蟲——京東評論、jieba分詞、wordcloud詞雲統計