-
生成词云还挺简单的。就用wordcloud库就可以生成。WordCloud用的内容可以是字符串,也可以是dict.生成中文信息的时候要指定字体文件。不然返回的都是方块。
-
关于扒网页信息。要注意的是在header里放一些user-agent一类的东西(假装是真的有人从浏览器点开)。不然可能网站会识别出来,啥都不返回。返回值需要encode成utf-8,不然中文显示是十六进制的。
-
json包是可以直接把字符串解析成json的。
具体看代码就好
import requests
import json
import matplotlib.pyplot as plt
from wordcloud import WordCloud
headers={
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'
}
response=requests.get('http://staticize.mop.com/flow/getGodsPost?callback=jQuery18306592292048542212_1556547095138&category=110017&_=1556547100904', headers)
data=response.content.decode('utf-8')
jsonData = json.loads(data[data.find("{"):data.rfind("}")+1])
webContent = jsonData["data"] #title htmlname
#generate word cloud
cloudStr = ""
for content in webContent:
cloudStr += content["title"]
#font_path is used for Chinese characters
cloud = WordCloud(font_path="C:\Windows\Fonts\msyhbd.ttc",background_color="white",width=1000,height=860,margin=2).generate(cloudStr)
plt.imshow(cloud)
plt.axis("off")
plt.show()
网友评论