用Python爬取了三大相亲软件评论区,结果…

news2025/1/16 21:06:15

小三:怎么了小二?一副愁眉苦脸的样子。

小二:唉!这不是快过年了吗,家里又催相亲了 ...

小三:现在不是流行网恋吗,你可以试试相亲软件呀。

小二:这玩意靠谱吗?

小三:我也没用过,你自己看看软件评论区吧。

小二:这 ... 不过也只能先到评论区看看了。

本文以 360 手机助手为例,地址为:http://zhushou.360.cn/,相亲软件选择 3 个比较流行的,分别为:世纪佳缘、百合婚恋、有缘网,我们使用 Python 爬取软件评论区,看看用户评价情况。

先来看一下这三款软件的下载量和好中差评占比情况(下图单位为万次)。

下面开始爬取评论区,以世纪佳缘为例,首先,在搜索框输入世纪佳缘进行搜索,如图所示:

接着,点击搜索到的软件进入其详情页,如图所示:

将页面向下拉就可以看到评论区了,如图所示:

此时打开开发者工具并选择Network项,点击查看更多评论,然后可以看到getComments请求,如图所示:

通过这个请求我们就可以动态获取评论区数据了,其中参数star为开始的评论索引,参数count为每次加载的评论个数,可以通过参数callbackbaike指定不同应用,爬取代码实现如下:

headers = {
    "Accept": "*/*",
    "Accept-Encoding": "gzip, deflate, sdch",
    "Accept-Language": "zh-CN,zh;q=0.8",
    "Connection": "keep-alive",
    "Host": "comment.mobilem.360.cn",
    "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.98 Safari/537.36 LBBROWSER"
}
def comment_spider(param, file_name):
    base_url = "http://comment.mobilem.360.cn/comment/getComments?c=message&a=getmessage&&count=50"
    start = 0
    for i in range(1, 50):
        print("第{}页".format(i))
        url = base_url + param + "&start=" + str(start)
        r = requests.get(url, headers=headers)
        data = re.findall("{\"errno\"(.*)\);}catch\(e\){}", r.text)
        # 转为 Json 格式
        jdata = json.loads("{\"errno\"" + data[0])
        for message in jdata["data"]["messages"]:
            content = message["content"]
            print(content)
            with open(file_name + ".txt", "a", encoding="utf-8") as f:
                f.write(content)
        start = start + 50
        time.sleep(2)

我们将爬取的评论数据存到了 txt 文件中。

接着,我们将评论数据进行词云展示,代码实现如下:

with open("yy.txt", "r", encoding="utf-8") as f:
    content = f.read()
    stylecloud.gen_stylecloud(text=content, max_words=600,
                              collocations=False,
                              font_path="SIMLI.TTF",
                              icon_name="fas fa-heart",
                              size=800,
                              output_name="yy.png")
    Image(filename="yy.png")

最后,通过词云看一下用户对上述软件的评价情况。

世纪佳缘:

百合婚恋:

有缘网:

小二:看了有缘网的评论,我感觉自己和相亲软件无缘 ...

小三:...

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/557192.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用Gradle7.6.1 + SpringBoot3.0.2 + java17创建微服务项目(学习)

这是一个大胆的决定 这里是导航 技术栈开发工具一、创建gradle父子项目(deity)1.0 简单流程示意1.1、IDEA中主要图示1.1.1 项目结构图1.1.2 IDEA中 Gradle配置 1.2、deity父项目build.gradle文件1.3、deity父项目settings.gradle文件1.4、子项目build.g…

计算机底层知识

汇编语言(机器语言)的执行过程 汇编语言的本质:机器语言的助记符 其实他就是机器语言 计算机通电->CPU读取内存中程序(电信号输入) ->时钟发生器不断震荡通电 ->推动CPU内部一步一步执行(执行多…

elementUI,自定义表头,多层级表头,表头合并,行内容一致的合并行

先上效果: 1.自定义表头: 通过设置 slot"header" 来自定义表头。 slot-scope"scope" 这一行千万不要因为没有再template中使用到scope,vscode报红而删除,这会导致input框不能输入任何内容! &l…

软考网工计算题总结(一):总共27类题型,进来复习啦!

题型一: 1.地址编号从80000H到BFFFFH且按字节编址的内存容量为(5)KB,若用16KX4bit的存储芯片够成该内存,共需(6)片。 (5)A.128 B.256 C.512 D.1024 (6)A.8 B.16 C.32 D.64 【答案】B C 【解析】本题…

写一个自己的MyGPT app

chatGPT大火之后,国内外一众玩家撸起袖子热火朝天干了起来。 借助开源的GPT可以轻松的拥有自己的专属GPT,装装逼还是很好用的,也算赶一下chatGPT的风口。 这里使用ANYGPT,打造自已的GPT,AnyGPT API 开发者文档 语雀…

【STM32】基础知识 第十六课 窗口看门狗 WWDG 深入浅出

【STM32】基础知识 第十六课 窗口看门狗 WWDG 深入浅出 概述窗口看门狗 (WWDG)WWDG_SR 状态寄存器WWDG 配置与使用使用 WWDG 进行故障检测案例 概述 在嵌入式开发中, 可靠性和稳定性是至关重要的. 这就是为什么许多单片机, 比如 STM32, 提供了窗口看门狗 (Window Watchdog, WW…

redis 源码记录

正好最近时间富裕,看一看redis源码,简单的记录一下。也有可能说的是不全面的,自行斟酌,只能通过debug来简单的梳理本次测试流程,而不是全量的覆盖的所有测试用例,时不时更新,争取一天学一点点。…

基于Web的水果蔬菜销售系统的设计与实现(论文+源码)_kaic

摘 要 随着互联网经济与技术进程的不断推进,网上购物方式受到公众的普遍关注和欢迎。传统的樱桃线下销售模式缺陷不断暴露,难以满足公众不断加快的生活节奏和生活方式的需求。本文根据目前大众的实际需要,根据网上商城的特点、现状以及主要功…

Java 与排序算法(3):插入排序

一、插入排序 插入排序(Insertion Sort)是一种简单直观的排序算法,它的基本思想是将待排序序列分为已排序区间和未排序区间,然后每次从未排序区间取出一个元素,将其插入到已排序区间的合适位置中,使得插入…

【SpringBoot】八:Web服务---WebMvcConfigurer

文章目录 1.WebMvcConfigurer简介2. 页面跳转控制器3. 数据格式化4. 拦截器4.1 一个拦截器4.2 多个拦截器 1.WebMvcConfigurer简介 WebMvcConfigurer是SpringMVC xml配置文件的JavaConfig实现方式。 2. 页面跳转控制器 创建 SpringMVC 配置类: 3. 数据格式化 Formatter&…

计算机组成原理-存储系统-主存储器(芯片)和CPU连接

目录 一、SRAM和DRAM芯片 DRAM:栅极电容存储信息 SRAM:双稳态触发器存储信息 区别​编辑 二、ROM芯片 三、主存于CPU的连接 位扩展法 字扩展法 字位同时扩展法 译码器 四、双端口RAM和多模块存储器 4.1双端口RAM 4.2多模块存储器 4.2.1单体多字…

pthread多线程: 创建最简单的线程

文章目录 1. 目的1.1 不使用 Pthread 的情况1.2 使用 Pthread 的情况1.3 使用 Pthread 的好处 2. Pthread 创建线程的 API2.1 环境2.2 pthread_create()2.3pthread_join() 3. 创建最简单的线程3.1 要点3.2 代码 4. 创建多个子线程4.1 要点4.2 代码 5. 总结 1. 目的 Pthread 提…

计算机组成原理-存储系统-基本概论及组成

目录 一、存储器的层次化结构 二、存储器分类 存储介质 存取方式 信息可改性 三、性能指标 四、主存储器基本组成 基本的的半导体元件及原理 存储芯片的基本原理 一、存储器的层次化结构 二、存储器分类 存储介质 半导体存储器(主存,cache)、磁表面存储器(…

基于SpringBoot的SSMP的整合案例

基于SpringBoot的SSMP的整合案例 简单介绍模块创建创建实体类导入Mybatis-plus和druid的配置文件使用junit测试查询方法MP分页查询按照条件进行查询业务层Service开发业务层Service快速开发表现层开发表现层 实现分页查询表现层消息一致性的处理查询所有书本信息添加书本删除操…

TensorFlow巨浪中的巨人:大数据领域的引领者 TensorFlow实战【上进小菜猪大数据系列】

上进小菜猪,沈工大软件工程专业,爱好敲代码,持续输出干货。欢迎订阅本专栏! 大数据时代的到来带来了海量数据的处理和分析需求。在这个背景下,TensorFlow作为一种强大的深度学习框架,展现了其在大数据领域…

fastreport使用教程(fastreport报表编辑器)

除了库本身,FastReport.Net还包括单独的程序 – Designer和Viewer。 如您所知,第一个用于创建和编辑报表模板。它具有报表预览模式,您可以从中查看报表,将其导出为所需的数据格式并将其发送到打印。 Viewer用于以fpx预览格式查看报…

清华p-tuning | GPT也能做NLU?清华推出p-tuning方法解决GPT系列模型fine-tuning效果比BERT差问题

一、概述 title:GPT Understands, Too 论文地址:https://arxiv.org/abs/2103.10385 代码:https://github.com/THUDM/P-tuning 1.1 Motivation GPTs模型利用传统的fine-tuning技术在NLU任务上效果比较差,比同等量级的BERT效果…

2023/5/22总结

继承 继承是面向对象三大特征之一。可以使得子类具有父类的属性和方法,还可以在子类中重新定义,追加属性和方法。 如图: 在上面的图片中,dog和cat都继承了Animal类,所以dog和cat都可以称为Animal的子类或者派生类&…

chatgpt赋能Python-python_dng

Python DNG:开启更高效的数据处理之路 什么是Python DNG? Python DNG(Data NumPy Generator)是一种基于Python的高效数据生成器,可以加速数据处理和分析的过程。它基于Numpy数组操作和并行计算思想,可以快…

C++详解NOI题:[NOIP2021] 报数

文章目录 前言一、题目二、暴力解题步骤(50分)三、打表防坑解题(100分)总结 前言 受不了CSDN每日一练的在线竞赛系统了,bug多就算了,勉强能用,可那些题目的神描述,到处是错。所以找…