Python爬虫——刚学会爬虫,第一次实践就爬取了 《长津湖》影评数据

news/2024/7/19 9:08:42 标签: python, 爬虫

思路:

  1. 数据采集
  2. 清洗入库
  3. 分析处理

1. 数据采集

接口地址

https://m.maoyan.com/mmdb/comments/movie/257706.json?_v_=yes&offset=15&startTime=

解析地址:

257706 代表电影ID 长津湖

offset=15 代表:每次加载多少条数据15条

startTime: 从什么时间段开始加载

python">API_URL = "https://m.maoyan.com/mmdb/comments/movie/{movie_id}.json?_v_=yes&offset=15&startTime={last_time}"

# 获取长津湖 的最新的评论数据

url = API_URL.format(movie_id=257706, last_time="")
print(url)

# 获取较早期的  评论数据
url = API_URL.format(movie_id=257706, last_time="2021-10-05 13:01:10")
print(url)

触发反爬

抱歉,您的访问请求过于频繁

解决反爬

把自己伪装一个普通用户

修改请求,把Python爬虫,伪装成普通的浏览器用户

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Cache-Control: max-age=0
Connection: keep-alive
Cookie: Hm_lvt_703e94591e87be68cc8da0da7cbd0be2=1634128086; _lxsdk_cuid=17c799fc25bc8-0867635e9e187f-4343363-144000-17c799fc25bc8; uuid_n_v=v1; iuuid=2109DC402C2111EC94FB7932D5F4446B6CE405D5DDDA4A72A33C4117D64B4044; webp=true; ci=70%2C%E9%95%BF%E6%B2%99; ci=70%2C%E9%95%BF%E6%B2%99; ci=70%2C%E9%95%BF%E6%B2%99; featrues=[object Object]; _lxsdk=212B1FE02C2111EC93EAADFB465559EE1590794E3DEC46C1BCF9EC31597525FC; Hm_lpvt_703e94591e87be68cc8da0da7cbd0be2=1634129570; _lxsdk_s=17c799fc25b-94c-10f-437%7C%7C165
Host: m.maoyan.com
sec-ch-ua: "Chromium";v="92", " Not A;Brand";v="99", "Google Chrome";v="92"
sec-ch-ua-mobile: ?0
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: none
Sec-Fetch-User: ?1
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36

自动加载之前数据

python">last_time = ""  # 为空时候表示获取最新的数据,有参数的时候,获取指定时间的数据

for _ in range(3):  # 暂时只获取3页数据  3* 15  =45 条
    url = API_URL.format(movie_id=257706, last_time=last_time)
    print(url)
    resp = requests.get(url, headers=new_headers)  # 爬虫数据的时候,使用请求头来伪装自己

    last_time = resp.json()["cmts"][-1]["startTime"]  # 上一次数据中的最早的评论时间
    print(resp.json())

写入到文件

json 数据写入到文件:Python字典 ==== json.dumps ====》字符串

2. 清洗入库

  1. 从原始文件中,加载数据
  2. 请求整理数据
  3. 写入csv文件
  4. 使用excel 打开
python">with open(f"{movie_id}.csv", "w", encoding="utf-8-sig", newline="") as f:
        writer = csv.writer(f)
        writer.writerow(["时间", "城市", "昵称", "性别", "打分", "认可数", "评论内容"])

        for comment in comments:
            print(comment)
            # break
            writer.writerow(
                [
                    comment["startTime"],
                    comment["cityName"],
                    comment["nick"],
                    comment.get("gender", ""),
                    comment["score"],
                    comment["approve"],
                    comment["content"],
                ]
            )

源码包以及视频教程已上传至我的个人Python群:点击进群
956331022中,需要的自取,本群主要用于分享Python入门教程,爬虫项目案例。需要的同学可以进群下载


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

相关文章

Luogu P3459 [POI2007]MEG-Megalopolis(线段树)

P3459 [POI2007]MEG-Megalopolis 题意 题目描述 Byteotia has been eventually touched by globalisation, and so has Byteasar the Postman, who once roamedthe country lanes amidst sleepy hamlets and who now dashes down the motorways. But it is those strolls inthe…

Python就该这样学,我是如何2个月快速掌握Python的!学习大纲+学习方式+学习资料 汇总!

一、学习建议 1、找到自己感兴趣的方向,并且结合市场需求进行选择 Python的应用范围 测试运维web人工智能大数据爬虫及数据分析办公自动化2、学习过程中一定要勤加练习,并且尝试去使用学习过的内容实现一些简答的功能 遇到技术问题不要慌,解…

DirectX11--HLSL中矩阵的内存布局和mul函数探讨

前言 说实话,我感觉这是一个大坑,不知道为什么要设计成这样混乱的形式。 在我用的时候,以row_major矩阵,并且mul函数以向量左乘矩阵的形式来绘制时的确能够正常显示,并不会有什么感觉。但是也有人会遇到明明传的矩阵没…

零基础如何学Python,这里的Python学习路线一条龙,包含思维导图+学习资源,请叫我雷锋!

自 TIOBE 榜单创建至今的 20 多年来,本月排行榜的榜首位置首次出现了除 Java 和 C 以外的第三个编程语言——Python。这也就意味着,Java 和 C 的长期霸权已经结束。 这历史性的一幕并非突如其来。早在 2018 年开始,Python 的市场份额整体就开…

【09】进程监控脚本-mykey.conf

# 适用于C服务PID获取方法 UserParameterCpid[*],pgrep $1# 适用于C服务的句柄数 UserParameterC_handle[*],sshpass -p admin12345 ssh -p 2343 -o StrictHostKeyCheckingno root127.0.0.1 "ls -l /proc/\pgrep \$1\/fd | wc -l"# 适用于C服务获取CPU% UserParamet…

一个暑假,用这8个高效学习方法,让我彻底掌握Python

方法的话,可以尝试这样做: 1.收集 收集各种Python相关的入门资料 网页版本、PDF版本、书籍、视频、公众号等等 推荐资源: 计算机科学速成课:https://www.bilibili.com/video/BV1EW411u7th计算机网络微课堂:https:…

aspx、ashx、asmx文件处理请求效率比较

aspx文件也就是普通的页面文件,ashx就是一般处理程序,他没有页面部分,asmx文件也就是轻量级的WebService。假如我们需要一个处理某个请求然后返回一个结果的程序,那么你会选择什么样的文件来编码呢?总的来说&#xff0…

多研究些架构,少谈些框架——一名阿里架构师的微服务笔记

微服务架构和SOA区别微服务现在辣么火,业界流行的对比的却都是所谓的Monolithic单体应用,而大量的系统在十几年前都是已经是分布式系统了,那么微服务作为新的理念和原来的分布式系统,或者说SOA(面向服务架构&#xff0…