用 pyecharts 对爬虫后的数据进行可视化处理(生成饼图、柱状图、地理位置图、3D旋转动图、词云图)及地图问题的解决
首先,pyecharts 是一款融合了Python和echarts技术的强大的数据可视化工具,它的可视化类型比较多也很丰富,具体的可以参考pyecharts 中文网站:https://pyecharts.org/#/zh-cn/intro
pyecharts 的安装方法
可以参考 Selenium 的两种安装方法选一种就可以,有图和安装步骤
综合案例
1、爬取猫眼中的《一出好戏》的数据
__author__ = 'xiaoguo'
from urllib import request
import ssl, json
from datetime import datetime, timedelta
import time
# 获取数据
def get_data(url):
headers = {
'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1'
}
req = request.Request(url, headers=headers)
response = request.urlopen(req, context=ssl._create_unverified_context())
if response.getcode() == 200:
result = response.read()
return result
# 处理数据
def parse_data(html):
data = json.loads(html)['cmts']
contents = []
for item in data:
content ={
'id': item['id'],
'nickName': item['nickName'],
'cityName': item['cityName'] if 'cityName' in item else ' ', # 处理cityName不存在的情况
'content': item['content'].replace('\n', ' '), # 处理评论内容中有 \n 的情况
'score': item['score'],
'startTime': item['startTime']
}
contents.append(content)
return contents
# 存储数据到文本文件中
def save_to_txt():
# 当前时间
start_time = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
# 结束时间
end_time = '2018-08-08 00:00:00'
while start_time > end_time:
url = 'http://m.maoyan.com/mmdb/comments/movie/1203084.json?_v_=yes&offset=0&startTime=' + start_time.replace(' ', '%20')
try:
html = get_data(url)
except:
time.sleep(0.5)
html = get_data(url)
e