猫眼电影影评爬取

news/2024/7/6 2:48:01

文章目录

    • 前言
    • 思路分析
    • 完整代码
    • 总结

前言

前段时间,热播的电影《少年的你》,不知道大家看了吗?反正,我是看完了,至于这部电影怎么样,我就不做评论了,这个任务还是留给网友去做吧!好了,进入正题,今天我们要做的是猫眼电影影评的爬取。
下面我以电影《少年的你》为例进行分析。
在这里插入图片描述

思路分析

电影的影评接口如下(这个可以在网上搜到,也可以自己抓包分析):
http://m.maoyan.com/mmdb/comments/movie/1218029.json?v=yes&offset=0
这里简单的分析一下参数的含义:
1218029:猫眼电影的ID(这里就是《少年的你》的电影ID了)
offset:偏移,貌似是依次增加15
我们可以每次增加offset来进行爬取,即让offset每次增加15。我们通过这种方式来构造URL,发送请求即可。
关于数据存取,我们可以存储到数据库,也可保存到文件,这里由于我爬取的数据较少,就直接保存到文件了。
通过这个URL请求返回的是json数据,我们可以用Python的json模块进行解析,再用pandas保存成CSV文件就行了。

完整代码

# !/usr/bin/env python
# —*— coding: utf-8 —*—
# @Time:    2020/1/22 16:47
# @Author:  Martin
# @File:    maoyan.py
# @Software:PyCharm
import requests
import pandas as pd
import json
# 猫眼电影的ID
film_id = '1218029'
# 请求的URL
raw_url = 'http://m.maoyan.com/mmdb/comments/movie/'+film_id+'.json?_v_=yes&offset=%d'
# 伪装请求头部
headers = {
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3',
    'Accept-Encoding': 'gzip, deflate',
    'Accept-Language': 'zh-CN,zh;q=0.9',
    'Cache-Control': 'max-age=0',
    'Host': 'm.maoyan.com',
    'Proxy-Connection': 'keep-alive',
    'Upgrade-Insecure-Requests': '1',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36'
}
# 保存结果的列表
result = []
for i in range(0, 1000, 15):
    url = raw_url % i
    r = requests.get(url, headers=headers)
    data = json.loads(r.text)
    result = result + data['cmts']
    print("offset: ", i)
# 将数据存储到文件
df = pd.DataFrame(result)
df.to_csv('./result/maoyan.csv', index=False, index_label=False, na_rep='NULL', encoding='utf_8_sig')

总结

缺点: 用这个方法请求URL,获得的数据有上限,好像超过1000就不行了,具体的解决思路,等以后有了思路再分享。
踩过的坑: 遇到的问题是编码问题,一开始保存的数据中,总是出现乱码现象,这里特别注意要将编码方式设置成 utf_8_sig


http://www.niftyadmin.cn/n/3741997.html

相关文章

android scale xml,android 使用xml方式生成alpha,scale,translate,rotate四种动画

现在使用这种动画的越来越少了,大部分都是使用了属性动画了,但是作为学习还是有用的,主要是这个动画有一个致命的缺点就是不能交互,现在分别介绍下这四种动画作用alpha:渐变透明度动画效果scale:渐变尺寸伸缩动画效果translate:平移动画rotate:旋转动画在res下创建一个anim文件…

电影《少年的你》影评分析

文章目录前言数据展示评星比例图地理位置分布图词云图完整代码总结前言 今天我将用数据告诉你电影《少年的你》到底值不值得看,废话不多说,直接进入今天的正题吧! 数据展示 数据是我用爬虫从猫眼上爬下来的,具体操作见博文猫眼…

.NET Framework 3.0框架概述

在2000年,微软首次发行了一个称为.NET 1.0的产品的测试版本。其时.NET 1.0作为一个类框架,回答了开发者社区特别是Java社区,向微软提出的问题。当时,人们认为微软已经跟不上形势甚至有些落后于时代了。结果,.NET 框架的…

launcher修改---launcher的搜索框和ProtipWidget(widget修改)(有图有真相)

有的时候,对launcher的开发,需要去掉launcher上面的搜索框和ProtipWidget,另外,ProtipWidget是android从2.2版本以后才添加上的。在找寻了n久以后,经过网友的帮张,原来定义文件在Launcher2/res/xml/default…

零基础入门前端开发(二)

文章目录字符实体无序列表有序列表自定义列表图片标签文件地址字符实体 无序列表 用来表示一种没有先后顺序之分的列表项。 有序列表 用来表示一种有顺序之分的列表项。 自定义列表 自定义列表是一组标签,不过比较复杂,因为它出现了三对标签。 …

捐赠者讲述建造地震中未倒希望小学

资料图:最结实的希望小学,四川北川刘汉希望小学。 带领孩子们安全逃离的校长史少先(左一) 最结实的希望小学是怎样建成的——记四川北川刘汉希望小学和它的捐赠者 新华网四川北川5月26日电&a…

零基础入门前端开发(三)

表格 table标签的属性: tr标签的属性: td或者th标签的属性 空链接 锚点链接 如何实现锚点链接? 1、定义锚点 2、找到锚点 框架网页 将一个浏览器窗口分割为多个小窗口,每一个小窗口都可以存放一个HTML页面。 网页中颜色的…

汇编语言学习笔记(2)

文章目录汇编语言的组成:指令和数据CPU对存储器的读写各类存储器芯片内存地址空间小结汇编语言的组成: 1、汇编指令:机器码的助记符,有对应的机器码 2、伪指令:没有对应的机器码,由编译器执行,…