评论抓取:Python爬取AppStore上的评论内容及星级,突破500条限制

2023-12-22 13:08

本文主要是介绍评论抓取:Python爬取AppStore上的评论内容及星级,突破500条限制,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

之前看到网上有AppStore应用评论的爬虫,但是由于用的是官方提供的api,每个应用最多只能获取到500条评论,完全没法满足数据分析的需求。因此经过一些分析,写了一个可以获取更多评论的爬虫。

1 配置文件(config_api.json)

{"max_page": 5,"ids": ["要爬app的id", "要爬app的id"],"headers": {"User-Agent": "你自己的","Authorization": "你自己的"},"intervals": 2
}

 首先解释一下配置文件:

max_page:要爬的最大评论页数,每页是10条评论;

ids:要爬取的应用id列表;

headers:浏览器发起请求的请求头;

intervals:每爬一页评论的间隔时间。

2 代码(spider.py)

import os
import csv
import json
import time
import requestsnext_url = Nonereview_path = 'reviews'
if not os.path.exists(review_path):os.mkdir(review_path)with open('config_api.json', 'r') as file:config = json.loads(file.read())pending_queue = config['ids']max_page = config['max_page']headers = config['headers']intervals = config['intervals']# 发送请求获取响应
def get_response(app_id, page):time.sleep(intervals)try:url = 'https://amp-api.apps.apple.com/v1/catalog/cn/apps/' + app_id +'/reviews?l=zh-Hans-CN&offset=' + str(page * 10) + '&platform=web&additionalPlatforms=appletv%2Cipad%2Ciphone%2Cmac'r = requests.get(url, headers=headers)r.raise_for_status()return r.json()except requests.exceptions.HTTPError:return 'HTTPError!'# 解析响应
def parse_response(r):global next_urlif "next" in r.keys():next_url = r['next']else:next_url = Nonefor item in r['data']:yield {"id": item['id'],"type": item['type'],"title": item['attributes']['title'],"userName": item['attributes']['userName'],"isEdited": item['attributes']['isEdited'],"review": item['attributes']['review'],"rating": item['attributes']['rating'],"date":  item['attributes']['date']}# 写入 csv 文件
def write_to_file(app_id, item):with open(f'{review_path}/{app_id}.csv', 'a', encoding='utf-8-sig', newline='') as csv_file:fieldnames = ['id', 'type', 'title', 'userName', 'isEdited', 'review', 'rating', 'date']writer = csv.DictWriter(csv_file, fieldnames=fieldnames)writer.writerow(item)# 主函数
def main():while len(pending_queue):cur_id = pending_queue.pop()print(f'开始爬取 {cur_id}')for i in range(0, max_page):r = get_response(cur_id, i)print(f"第 {i+1} 页评论已获取")for item in parse_response(r):write_to_file(cur_id, item)print(f'第 {i} 页评论已存储')if not next_url:breakprint(f'结束爬取 {cur_id}')if __name__ == '__main__':main()

3 结果预览

 4 结语

有问题或者建议可以留言,如果对你有帮助的话,也可以关注我的公众号,谢谢。

这篇关于评论抓取:Python爬取AppStore上的评论内容及星级,突破500条限制的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/524057

相关文章

Python实现文件下载、Cookie以及重定向的方法代码

《Python实现文件下载、Cookie以及重定向的方法代码》本文主要介绍了如何使用Python的requests模块进行网络请求操作,涵盖了从文件下载、Cookie处理到重定向与历史请求等多个方面,... 目录前言一、下载网络文件(一)基本步骤(二)分段下载大文件(三)常见问题二、requests模块处理

Python判断for循环最后一次的6种方法

《Python判断for循环最后一次的6种方法》在Python中,通常我们不会直接判断for循环是否正在执行最后一次迭代,因为Python的for循环是基于可迭代对象的,它不知道也不关心迭代的内部状态... 目录1.使用enuhttp://www.chinasem.cnmerate()和len()来判断for

使用Python实现高效的端口扫描器

《使用Python实现高效的端口扫描器》在网络安全领域,端口扫描是一项基本而重要的技能,通过端口扫描,可以发现目标主机上开放的服务和端口,这对于安全评估、渗透测试等有着不可忽视的作用,本文将介绍如何使... 目录1. 端口扫描的基本原理2. 使用python实现端口扫描2.1 安装必要的库2.2 编写端口扫

使用Python实现操作mongodb详解

《使用Python实现操作mongodb详解》这篇文章主要为大家详细介绍了使用Python实现操作mongodb的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、示例二、常用指令三、遇到的问题一、示例from pymongo import MongoClientf

使用Python合并 Excel单元格指定行列或单元格范围

《使用Python合并Excel单元格指定行列或单元格范围》合并Excel单元格是Excel数据处理和表格设计中的一项常用操作,本文将介绍如何通过Python合并Excel中的指定行列或单... 目录python Excel库安装Python合并Excel 中的指定行Python合并Excel 中的指定列P

一文详解Python中数据清洗与处理的常用方法

《一文详解Python中数据清洗与处理的常用方法》在数据处理与分析过程中,缺失值、重复值、异常值等问题是常见的挑战,本文总结了多种数据清洗与处理方法,文中的示例代码简洁易懂,有需要的小伙伴可以参考下... 目录缺失值处理重复值处理异常值处理数据类型转换文本清洗数据分组统计数据分箱数据标准化在数据处理与分析过

Python调用另一个py文件并传递参数常见的方法及其应用场景

《Python调用另一个py文件并传递参数常见的方法及其应用场景》:本文主要介绍在Python中调用另一个py文件并传递参数的几种常见方法,包括使用import语句、exec函数、subproce... 目录前言1. 使用import语句1.1 基本用法1.2 导入特定函数1.3 处理文件路径2. 使用ex

Python脚本实现自动删除C盘临时文件夹

《Python脚本实现自动删除C盘临时文件夹》在日常使用电脑的过程中,临时文件夹往往会积累大量的无用数据,占用宝贵的磁盘空间,下面我们就来看看Python如何通过脚本实现自动删除C盘临时文件夹吧... 目录一、准备工作二、python脚本编写三、脚本解析四、运行脚本五、案例演示六、注意事项七、总结在日常使用

Python将大量遥感数据的值缩放指定倍数的方法(推荐)

《Python将大量遥感数据的值缩放指定倍数的方法(推荐)》本文介绍基于Python中的gdal模块,批量读取大量多波段遥感影像文件,分别对各波段数据加以数值处理,并将所得处理后数据保存为新的遥感影像... 本文介绍基于python中的gdal模块,批量读取大量多波段遥感影像文件,分别对各波段数据加以数值处

python管理工具之conda安装部署及使用详解

《python管理工具之conda安装部署及使用详解》这篇文章详细介绍了如何安装和使用conda来管理Python环境,它涵盖了从安装部署、镜像源配置到具体的conda使用方法,包括创建、激活、安装包... 目录pytpshheraerUhon管理工具:conda部署+使用一、安装部署1、 下载2、 安装3