资源简介
使用python爬取猫眼影评并进行可视化处理分析,具体分析可见https://blog.csdn.net/qq_32392597/article/details/96891236
代码片段和文件信息
# coding=utf-8
from urllib import request
import json
import time
from datetime import datetime
from datetime import timedelta
# 获取数据,根据url获取
def get_data(url):
headers = {
‘User-Agent‘: ‘Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML like Gecko) Chrome/64.0.3282.140 Safari/537.36‘
}
req = request.Request(url headers=headers)
response = request.urlopen(req)
if response.getcode() == 200:
return response.read()
return None
#处理数据
def parse_data(html):
data = json.loads(html)[‘cmts‘] # 将str转换为json
comments = []
for item in data:
comment = {
‘id‘: item[‘id‘]
‘nickName‘: item[‘nickName‘]
‘cityName‘: item[‘cityName‘] if ‘cityName‘ in item else ‘‘ # 处理cityName不存在的情况
‘content‘: item[‘content‘].replace(‘\n‘ ‘ ‘ 10) # 处理评论内容换行的情况
‘score‘: item[‘score‘]
‘startTime‘: item[‘startTime‘]
}
comments.append(comment)
return comments
# 存储数据,存储到文本文件
def save_to_txt():
start_time = datetime.now().strftime(‘%Y-%m-%d %H:%M:%S‘) # 获取当前时间,从当前时间向前获取
end_time = ‘2019-07-18 00:00:00‘
while start_time > end_time:
url = ‘http://m.maoyan.com/mmdb/comments/movie/1229534.json?_v_=yes&offset=0&startTime=‘ + start_time.replace(‘ ‘ ‘%20‘)
html = None
‘‘‘
问题:当请求过于频繁时,服务器会拒绝连接,实际上是服务器的反爬虫策略
解决:1.在每个请求间增加延时0.1秒,尽量减少请求被拒绝
2.如果被拒绝,则0.5秒后重试
‘‘‘
try:
html = get_data(url)
except Exception as e:
time.sleep(0.5)
html = get_data(url)
else:
time.sleep(0.1)
comments = parse_data(html)
print(comments)
start_time = comments[14][‘startTime‘] # 获得末尾评论的时间
start_time = datetime.strptime(start_time ‘%Y-%m-%d %H:%M:%S‘) + timedelta(seconds=-1) # 转换为datetime类型,减1秒,避免获取到重复数据
start_time = datetime.strftime(start_time ‘%Y-%m-%d %H:%M:%S‘) # 转换为str
#a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。
for item in comments:
with open(‘C:/Users/Administrator/Desktop/使用python爬取猫眼影评并进行可视化处理分析/comments.txt‘ ‘a+‘ encoding=‘utf-8‘) as f:
f.write(str(item[‘id‘])+‘‘+item[‘nickName‘] + ‘‘ + item[‘cityName‘] + ‘‘ + item[‘content‘] + ‘‘ + str(item[‘score‘])+ ‘‘ + item[‘startTime‘] + ‘\n‘)
if __name__ == ‘__main__‘:
html = get_data(‘http://m.maoyan.com/mmdb/comments/movie/1229534.json?_v_=yes&offset=0&startTime=2019-07-18%2022%3A25%3A03‘)
comments = parse_data(html)
# print(comments)
save_to_txt()
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3192 2019-07-22 21:10 使用python爬取猫眼影评并进行可视化处理分析\1.py
文件 4769 2019-07-22 21:34 使用python爬取猫眼影评并进行可视化处理分析\2.py
文件 8200650 2019-07-22 21:09 使用python爬取猫眼影评并进行可视化处理分析\comments.txt
文件 30804 2019-07-22 21:31 使用python爬取猫眼影评并进行可视化处理分析\粉丝来源.html
目录 0 2019-07-22 19:40 使用python爬取猫眼影评并进行可视化处理分析
----------- --------- ---------- ----- ----
8239415 5
相关资源
- 《Python机器学习》实验报告.doc
- python-3.7.7-amd64-webinstall.exe
- python+opencv识别魔方颜色+kociemba算法应
- 基于Python的手写字体识别系统
- Pillow-3.4.2-cp36-cp36m-win_amd64.whl python3
- 机器学习机器学习机器学习python的P
- Python爬虫入门:如何爬取招聘网站并
- Python深度学习122512
- 笨办法学Python3中英
- dive-into-python3 英文版+深入python3中文版
- 富文本使用案例
- scons-local-2.0.1
- python数据分析:客户价值分析案例实
- 用Python 编写的一个Monkey脚本
- 卷积神经网络图像识别python代码
- Python标准库英文版
- python写一个商城网页服务器并且实现
- 可爱的python 思哲社区
- 图像分割Grabcut算法-GUI程序-python实现
- 黑马python入门教程飞机大战素材(图
- 基于selenium模拟天眼查登录并爬取企业
- Python3 廖雪峰教程pdf版
- pythoncookbook(第3版)高清中文完整版
- 中文情感分析python程序
- 从零基础开始用Python处理Excel数据.p
- 基于python的opencv行人检测带简单按钮
- Python Crash Course 原版PDF by Matthes
- Python Pocket Reference 5th 原版PDF by Lut
- Deep Learning with Python 原版PDF by Choll
- python requests官方中文文档 高级用法
评论
共有 条评论