mysql平然_爬取猫眼怦然心动电影评论

可以用pandas读出之前保存的数据:

newsdf = pd.read_csv(r'F:\duym\gzccnews.csv')

一.把爬取的内容保存到数据库sqlite3

import sqlite3

with sqlite3.connect('gzccnewsdb.sqlite') as db:

newsdf.to_sql('gzccnews',con = db)

with sqlite3.connect('gzccnewsdb.sqlite') as db:

df2 = pd.read_sql_query('SELECT * FROM gzccnews',con=db)

7b9cece914004a66dff2e400b80f0b12.png

385de1d6c061ee6a030db4c3d50b8d01.png

保存到MySQL数据库

import pandas as pd

import pymysql

from sqlalchemy import create_engine

conInfo = "mysql+pymysql://user:passwd@host:port/gzccnews?charset=utf8"

engine = create_engine(conInfo,encoding='utf-8')

df = pd.DataFrame(allnews)

df.to_sql(name = ‘news', con = engine, if_exists = 'append', index = False)

c0573a3d64bed3f7471071c4908250dd.png

二.爬虫综合大作业

选择一个热点或者你感兴趣的主题。

选择爬取的对象与范围。

了解爬取对象的限制与约束。

爬取相应内容。

做数据分析与文本分析。

形成一篇文章,有说明、技术要点、有数据、有数据分析图形化展示与说明、文本分析图形化展示与说明。

文章公开发布。

我感兴趣的主题:最近重温怦然心动电影,爬取其评论

获取的是猫眼APP的评论数据,如图所示::

6fd07e95e3ca7596f34d17cd47e32082.png

多次观察发现:

bc0974cfea0d9fe9c577380a2b52c2ea.png

58cf8b853a5bdebcc57cdec787ec6dda.png

只需要改变ts的值就能获取到数据,每次返回的数据的后端的ts就是下一页的ts,改变的就是offset和ts的值:

e7c0ee173a503fc4cdbdd7d244ce3903.png

f650e0345a00c03ab3e44c15e3cba559.png

所以只需要更新offset的值就能获取每页的评论数据

代码实现:

2019/5/7

获取数据代码

from bs4 importBeautifulSoupimportrequestsimportjsonimportrandomimporttimeimportpandas as pd

headers={'User-Agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.81 Mobile Safari/537.36',

}#url设置offset偏移量为0

url = 'http://m.maoyan.com/review/v2/comments.json?movieId=46818&userId=-1&offset=0&limit=15&type=3&ts={}'comment=[]

nick=[]

score=[]

comment_time=[]

gender=[]

userlevel=[]

userid=[]

upcount=[]

replycount=[]

list_=[]

ji= 1ts= 0 #获取当前时间(单位是毫秒,所以要✖️1000)

#offset最大值1005

for t in range(1000):

url= 'http://m.maoyan.com/review/v2/comments.json?movieId=46818&offset={}&type=3'url_range=url.format(t)print(url_range)try:

res= requests.get(url_range, headers=headers)

res.encoding= 'utf-8'

print('正在爬取第' + str(ji) + '页')

content= json.loads(res.text,encoding='utf-8')print(content)

comments= content['data']['comments']exceptException as e:print("出错")

count=0for item incomments:

comment.append(item['content'])

nick.append(item['nick'])

score.append(item['score'])

count=count+1ji= ji+1

print('=======================')

ts= content['ts']print(content['ts'])print('=======================')

time.sleep(3)print('爬取完成')print(ts)print(comment)print(score)

pd.DataFrame(nick).to_csv('bigdata.csv',encoding='utf_8_sig')

pd.DataFrame(comment).to_csv('neirong.csv',encoding='utf_8_sig')

pd.DataFrame(score).to_csv('pingfen.csv',encoding='utf_8_sig')

爬取到的数据:

095eb61bea6d1abe36110c97993c4c04.png

整理数据:

#coding=utf-8

#导入jieba模块,用于中文分词

importjieba#获取所有评论

importpandas as pd#读取小说

f = open(r'评论内容.csv', 'r', encoding='utf8')

text=f.read()

f.close()print(text)

ch="《》\n:,,。、-!?0123456789"

for c inch:

text= text.replace(c,'')print(text)

newtext=jieba.lcut(text)

te={}for w innewtext:if len(w) == 1:continue

else:

te[w]= te.get(w, 0) + 1tesort=list(te.items())

tesort.sort(key=lambda x: x[1], reverse=True)#输出次数前TOP20的词语

for i in range(0, 20):print(tesort[i])

pd.DataFrame(tesort).to_csv('xin.csv', encoding='utf-8')

93b9634133a6a7fb338f594d3f58a3ef.png

生成词云图:

0a15ba3e92221c4e6c6179a39a21c81d.png

大概从词云图可以推出,讲述一段美好的爱情小故事。

整理评分数据:

#coding=utf-8

fen=[]#获取评论中所有评分

with open('pingfen.csv', mode='r', encoding='utf-8') as f:

row1=f.readlines()for row2 inrow1:

fen.append(row2.split(',')[1])print(row2)print(fen)

zong=fen.__len__()print(zong)

value=[fen.count('7\n'),fen.count('8\n'),fen.count('9\n'),fen.count('10\n')]print(value)

12535ff83cd4376fadbbde692779f4bc.png

十分好评的人数有477人,八九十分合起来有980人

整体而言,这部电影是非常值得大家观赏的一部好看的电影

56cf53622e44826bb3095239914ca898.png

评分人数的图表,从人数来看可以看出这是一部经典好电影。

爬取猫眼电影评论,您需要了解以下步骤: 1. 访问猫眼电影网站,找到您想要爬取评论电影页面,例如:https://maoyan.com/films/1217236 2. 打开开发者工具,选择Network标签页,刷新页面,找到评论接口链接,例如:https://m.maoyan.com/mmdb/comments/movie/1217236.json?_v_=yes&offset=0&startTime=0 3. 使用Python的requests库向评论接口发送请求,获取数据,并使用json库解析数据 4. 分析数据结构,提取评论信息,例如:评论内容、评论时间、评论用户、评论评分等 5. 将提取的评论信息存储到本地文件或数据库中 下面是一个简单的Python爬虫示例代码: ```python import requests import json url = 'https://m.maoyan.com/mmdb/comments/movie/1217236.json?_v_=yes&offset=0&startTime=0' headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'} response = requests.get(url, headers=headers) if response.status_code == 200: comments = json.loads(response.text)['cmts'] for comment in comments: content = comment['content'] time = comment['time'] nick = comment['nick'] score = comment['score'] print('评论内容:', content) print('评论时间:', time) print('评论用户:', nick) print('评论评分:', score) else: print('爬取失败') ``` 注意:该示例仅供学习参考使用,不得用于商业用途。同时,请尊重网站的使用规则和版权,遵守网络道德。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值